Javascript Html5拖放,dragstart后不触发Mousewell事件
我有一个应用程序,我正在做html5拖放分类,所以用户可以采取分类和移动到他想要的地方 一切正常,但有时类别列表很大,如果用户需要向下移动,他们希望使用鼠标滚轮滚动,但问题是dragstart后不会触发此事件Javascript Html5拖放,dragstart后不触发Mousewell事件,javascript,html,angular,typescript,drag-and-drop,Javascript,Html,Angular,Typescript,Drag And Drop,我有一个应用程序,我正在做html5拖放分类,所以用户可以采取分类和移动到他想要的地方 一切正常,但有时类别列表很大,如果用户需要向下移动,他们希望使用鼠标滚轮滚动,但问题是dragstart后不会触发此事件 <!DOCTYPE html> <html> <head> <script> function allowDrop(ev) { ev.preventDefault(); } function drag(ev) {
<!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>
注:是的,如果光标移到底部,浏览器将滚动,但在我的应用程序中,用户体验很重要,因为有时他们会对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>
功能allowDrop(ev){
ev.preventDefault();
}
功能阻力(ev){
ev.dataTransfer.setData(“文本”,ev.target.id);
}
文件.附录列表(“轮子”,功能(e){
控制台日志(e);
},假);
拖我
最后使用了ng2 dragula,因为我使用的是angular,它是
你能创建一个JSFIDLE来演示吗?@guest271314打开控制台,然后开始拖动div,按住鼠标并尝试使用滚轮,你将看不到打印出来的事件如何与
dragstart
和wheel
事件相关?让我们来看看。实际上,我在所有地方都看到这种行为。很少有用户界面允许在执行拖放时滚动。真遗憾。为什么你会忽略滚动,尤其是在拖动某个东西的时候????我不明白。请有人给我解释一下。哪位天才有这个绝妙的主意?!