鼠标事件
当用户在文档上移动或单击鼠标时都会产生鼠标事件。这些事件在鼠标指针所对应的最深嵌套元素上触发,但它们会冒泡直到文档最顶层。传递给鼠标事件处理程序的事件对象有属性集,它们描述了当事件发生时鼠标的位置和按键状态,也指明当时是否有任何辅助键按下。clientX和clientY属性指定了鼠标在窗口坐标中的位置,button和which属性指定了按下的鼠标键是哪个。当键盘辅助键按下时,对应的属性altkey、ctrlKey、metaKey和shiftKey会设置为true。而对于click事件,detail属性指定了其是单击、双击还是三击。
用户每次移动或拖动鼠标时,会触发mousemove事件。这些事件的发生非常频繁,所以mousemove事件处理程序一定不能触发计算密集型任务。当用户按下或释放鼠标按键时,会触发mousedown和mouseup事件。通过注册mousedown和mousemove事件处理程序,可以探测和响应鼠标的拖动。
在mousedown和mouseup事件队列之后,浏览器也会触发click事件。如果用户在相当短的时间内连续两次单击鼠标按键,跟在第二个click事件之后是dblclick事件。当单击鼠标右键时,浏览器通常会显示上下文菜单(context menu)。在显示菜单之前,它们通常会触发contextmenu事件,而取消这个事件就可以阻止菜单的显示。这个事件也是获得鼠标右击通知的简单方法。
关注我们,了解更多前端知识