我正在制作一个播放列表用于演示目的。我已经设置了一个嵌套列表项的无序列表。“draggable=true”处理程序使这些项目可拖动,效果很好。
这就是我被困的地方;
一旦项目被点击,并准备拖动。我需要用户对用户丢弃物品的位置有强烈的视觉反馈。标准化没有给出任何视觉反馈,只是将列表项放在其他项之间。我正在寻找一种方法来在视觉上将其他列表元素推到一边,或者至少在用户持有拖动项目的位置上突出显示边框。
解决这个问题的最佳方法是什么?我在这里放了一些代码以防万一,但我正在寻找的是我编写的代码之外的内容。
HTML:
<ul>
<li draggable="true" ondragstart="dragStarted(event)" ondragover="draggingOver(event)" ondrop="dropped(event)" ondragenter="dragEnter(event)">
Item 1
</li>
<li draggable="true" ondragstart="dragStarted(event)" ondragover="draggingOver(event)" ondrop="dropped(event)" ondragenter="dragEnter(event)">
Item 2
</li>
<li draggable="true" ondragstart="dragStarted(event)" ondragover="draggingOver(event)" ondrop="dropped(event)" ondragenter="dragEnter(event)">
Item 3
</li>
</ul>
JS
var source;
function dragStarted(e){
source = e.target;
e.dataTransfer.setData("text/plain", e.target.innerHTML);
e.dataTransfer.effectAllowed = "move";
}
function draggingOver(e){
e.preventDefault();
e.dataTransfer.dropEffect = "move";
}
function dropped(e){
e.preventDefault();
e.stopPropagation();
if (e.target.localName === 'li') {
source.innerHTML = e.target.innerHTML;
e.target.innerHTML = e.dataTransfer.getData("text/plain");
}
}
如何添加允许我以项目之间突出显示的边框形式设计视觉反馈的代码。