色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 兩欄選擇控件

張明哲1年前7瀏覽0評論

JavaScript是一種使用廣泛的編程語言,可以用于創(chuàng)建各種類型的網(wǎng)站特效,其中,兩欄選擇控件是很常見的一種特效。這種控件可以讓用戶在兩個不同的選項中進(jìn)行選擇,同時可以自由拖動選項進(jìn)行調(diào)整。

實現(xiàn)這種控件的基本方法是使用HTML和CSS來創(chuàng)建兩個列,然后使用JavaScript來添加拖動的功能。下面是一個簡單的例子:

<style>
#left-col, #right-col {
display: inline-block;
width: 150px;
height: 300px;
border: 1px solid black;
overflow: auto;
vertical-align: top;
}
</style>
<div id="left-col">
<div id="left-item-1">選項1</div>
<div id="left-item-2">選項2</div>
<div id="left-item-3">選項3</div>
</div>
<div id="right-col">
<div id="right-item-1">選項4</div>
<div id="right-item-2">選項5</div>
<div id="right-item-3">選項6</div>
</div>
<script>
window.onload = function() {
var items = document.querySelectorAll('#left-col div, #right-col div');
for (var i = 0; i < items.length; i++) {
items[i].addEventListener('mousedown', function(event) {
if (event.target.tagName === 'DIV') {
event.preventDefault();
var oldX = event.clientX, oldY = event.clientY,
item = event.target, origPos = item.getBoundingClientRect(),
newitem = item.cloneNode(true);
newitem.style.position = 'absolute';
newitem.style.top = origPos.top + 'px';
newitem.style.left = origPos.left + 'px';
newitem.style.width = origPos.width + 'px';
newitem.style.height = origPos.height + 'px';
document.body.appendChild(newitem);
item.style.opacity = 0.5;
window.addEventListener('mousemove', function(event) {
newitem.style.top = (origPos.top + event.clientY - oldY) + 'px';
newitem.style.left = (origPos.left + event.clientX - oldX) + 'px';
var target = document.elementFromPoint(event.pageX, event.pageY);
if (target.parentNode.id === 'left-col' || target.parentNode.id === 'right-col') {
var siblings = target.parentNode.children;
for (var i = 0; i < siblings.length; i++) {
if (siblings[i] === target) {
if (event.clientX < siblings[i].getBoundingClientRect().left + siblings[i].getBoundingClientRect().width / 2) {
target.parentNode.insertBefore(item, target);
} else {
target.parentNode.insertBefore(item, target.nextSibling);
}
}
}
}
});
window.addEventListener('mouseup', function() {
item.style.opacity = '';
newitem.parentNode.removeChild(newitem);
});
}
});
}
};
</script>

在這個例子中,我們使用CSS來給左右兩個列表添加樣式,并將它們放在一個包含塊中。然后,我們使用JavaScript添加一個事件監(jiān)聽器,以在用戶選擇列表項時添加拖動功能。在拖動過程中,我們需要將選項在左右兩個列表中進(jìn)行移動,以實現(xiàn)兩欄選擇控件的功能。

需要注意的是,在實現(xiàn)兩欄選擇控件時,我們需要考慮性能問題,因此應(yīng)該盡量減少DOM操作的次數(shù),盡可能地使用緩存和合并操作來提高代碼效率。

總之,JavaScript提供了豐富的功能,可以用于實現(xiàn)各種網(wǎng)站特效,其中,兩欄選擇控件是一種非常常見的特效。通過使用HTML、CSS和JavaScript,我們可以輕松地實現(xiàn)這種控件,并讓用戶在不同的選項中進(jìn)行選擇,從而提供更好的用戶體驗。