了解在JavaScript中使用鼠标事件的基本知识
查看更多关于JavaScript事件的信息
在查看鼠标事件时,我们可以与以下内容进行交互
mousedown鼠标按钮被按下mouseup鼠标按钮被释放click点击事件dblclick双击事件mousemove鼠标在元素上移动时mouseover当鼠标移动到一个元素或其一个子元素上时mouseenter当鼠标移到一个元素上时。类似于 ,但不冒泡(关于这一点很快就会有更多的内容!)。mouseovermouseout当鼠标移出一个元素,以及当鼠标进入一个子元素的时候mouseleave当鼠标从一个元素上移开时。类似于 ,但不冒泡(关于这一点很快就会有更多的内容!)。mouseoutcontextmenu当上下文菜单被打开时,例如,在鼠标右键点击时
事件重合。当你追踪一个click 事件时,就像追踪一个mousedown ,然后是一个mouseup 事件。在dblclick 的情况下,click 也会被触发两次。
mousedown,mousemove 和mouseup 可以结合使用来跟踪拖放事件。
对mousemove ,要小心,因为它在鼠标移动过程中发射了许多次。我们需要应用节流,这一点我们将在分析滚动时详细讨论。
当在一个事件处理程序中,我们可以访问很多属性。
例如,在一个鼠标事件中,我们可以通过检查事件对象的button 属性来检查哪个鼠标按钮被按下。
const link = document.getElementById('my-link')
link.addEventListener('mousedown', event => {
// mouse button pressed
console.log(event.button) //0=left, 2=right
})
下面是我们可以使用的所有属性。
altKey如果事件发生时alt键被按下,则为truebutton如果有,当鼠标事件被触发时,被按下的按钮的编号(通常0=主按钮,1=中间按钮,2=右按钮)。对点击按钮引起的事件起作用(如点击)。buttons如果有的话,一个数字表示在任何鼠标事件中按下的按钮。clientX/ 鼠标指针相对于浏览器窗口的x和y坐标,与滚动无关clientYctrlKey如果事件发生时,ctrl键被按下,则为truemetaKey如果事件发生时,meta键被按下,则为真movementX/ 鼠标指针的x和y坐标相对于最后一个mousemove事件的位置。用来跟踪鼠标移动时的速度movementYregion在Canvas API中使用relatedTarget事件的次要目标,例如移动时。screenX/ 屏幕坐标中鼠标指针的x和y坐标screenYshiftKey如果事件发生时按下了shift键,则为true