拖拽、放置和鼠标滚轮?

5

简短版:在拖放操作过程中,鼠标滚轮事件能否触发?

长篇版本:

目前我正在设计这个特定功能,所以还没有任何代码。我问这个问题是为了知道是否继续追求这条路是浪费时间,以便我可以设计其他东西。

基本上,我有一个项目列表在一边,另一边有一个篮子。目前每个项目都有一个输入框和一个按钮,因此您可以输入数量并将其添加到篮子中(反之亦然)。我想添加拖放功能,以便您可以轻松地将项目拖到一边或另一边。如果您只需要该项中的一个,则此方法有效,但我想添加一种在拖动时调整数量的方法。鼠标滚轮出现在我的脑海中,因为您已经使用鼠标进行第一次拖动。

因此,在深入代码之前,我需要知道在拖动过程中是否可能接收到鼠标滚轮事件,如果可以,应在哪里添加侦听器?


1
我认为大多数人在尝试使用鼠标滚轮同时按住左键进行拖动时会遇到问题。 - AlfonsoML
@AlfonsoML 我认为这不是问题,因为这是一种可选的替代输入形式。 - Niet the Dark Absol
@AlfonsoML 不是我... 我是左撇子用右手鼠标,用中指按住左键滚动很容易(微笑) - bart s
我并不是说这不能被实现或者没有人会使用它,我只是指出大多数人使用同一个手指进行左键单击和鼠标滚轮操作。这就是为什么我认为这不是一个常用的功能。 - AlfonsoML
你尝试过实现一个原型吗? - Daniel A. White
1个回答

1
如果您想在wheel事件期间检查主鼠标按钮是否被按下,可以使用以下代码:
addEventListener('wheel', function (event) {
  if (event.buttons & 1) {
    alert("You scrolled while the primary mouse button was down!");
  }
}

很遗憾,如果您正在使用带有draggable='true'属性的拖放API,则在拖动过程中不会触发wheelscroll事件,因此您将无法触发和处理scroll事件。

在'13年提出了这个问题,在'20年回答了它,现在终于注意到并接受了!这确实很不幸,但也有点合理,是吧。哦,好吧! - Niet the Dark Absol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接