Html5 拖放,dragstart 后不会触发 Mousewhel 事件

Vol*_*hat 6 html javascript drag-and-drop typescript angular

我有一个应用程序,我正在其中进行 html5 拖放以进行类别排序,因此用户可以选择类别并将其移动到他想要的地方。

一切都很好,但有时类别列表很大,如果用户需要向下移动它,他们想使用鼠标滚轮滚动,但问题是在 Dragstart 之后,不会触发此事件。

附言。是的,如果光标移至底部,则浏览器将滚动,但在我的应用程序中,用户体验很重要,因为有时他们要对 50 个类别进行排序,并且需要花费大量时间

这是示例代码,如果您开始拖动鼠标上的 div 和滚轮,则不会将事件打印到控制台,这意味着事件不会被触发。

<!DOCTYPE html>
<html>

  <head>
  <script>
function allowDrop(ev) {
    ev.preventDefault();
}

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

document.addEventListener("wheel", function(e){
        console.log(e);
    }, false);

</script>
</head>
<body>


<div id="drag1"  draggable="true"
ondragstart="drag(event)" width="336" height="69"  style="    border: 1px solid #aaaaaa;">Dragg me</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Vol*_*hat 0

最终使用 ng2-dragula 因为我使用的是 Angular,它是 https://github.com/bevacqua/dragula的端口