如何在mousemove监听器中特征检测event.which?

时间:2014-07-21 18:59:44

标签: javascript browser-feature-detection

如果在移动事件发生时当前按下了鼠标左键,则Chrome似乎在event.which === 1侦听器中有mousemove

但Firefox没有;它只会在event.whichmousedown中设置mouseup。我不了解其他浏览器。

有人能想出一种特色检测这种行为的好方法吗?

注意:我知道你可以使用mousedown和mouseup监听器来破解它来更新mouseIsPressed变量,但这在我的情况下不是一个好的黑客(在iframed窗口内的拖动交互,即无法通过如果它发生在iframe之外,则捕获mouseup,所以我想使用可用的本地event.which

1 个答案:

答案 0 :(得分:2)

DOM Level 3 defines MouseEvent#buttonsFirefox supports。来自the MDN article on mousemove

  

触发鼠标事件时按下按钮:左键= 1,右键= 2,中键(滚轮)键= 4,第四键(通常为“浏览器返回”键)= 8,第五键(通常为,“浏览器转发”按钮)= 16。如果按下两个或更多按钮,则返回值的逻辑和。例如,如果按下左键和右键,则返回3(= 1 | 2)。