【发布时间】:2018-07-30 01:32:42
【问题描述】:
我正在制作一个播放列表用于演示目的。我已经设置了一个嵌套列表项的无序列表。 “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");
}
}
如何添加代码,让我能够以项目之间突出显示的边框的形式设计视觉反馈。
【问题讨论】:
-
最好放置一个完整且可验证的示例,而不仅仅是一些代码。
-
我已更改代码以更有效地反映问题。
标签: javascript jquery html drag-and-drop html5-draggable