了解在JavaScript中使用鼠标事件的基本知识

145 阅读2分钟

了解在JavaScript中使用鼠标事件的基本知识

查看更多关于JavaScript事件的信息

在查看鼠标事件时,我们可以与以下内容进行交互

  • mousedown 鼠标按钮被按下
  • mouseup 鼠标按钮被释放
  • click 点击事件
  • dblclick 双击事件
  • mousemove 鼠标在元素上移动时
  • mouseover 当鼠标移动到一个元素或其一个子元素上时
  • mouseenter 当鼠标移到一个元素上时。类似于 ,但不冒泡(关于这一点很快就会有更多的内容!)。mouseover
  • mouseout 当鼠标移出一个元素,以及当鼠标进入一个子元素的时候
  • mouseleave 当鼠标从一个元素上移开时。类似于 ,但不冒泡(关于这一点很快就会有更多的内容!)。mouseout
  • contextmenu 当上下文菜单被打开时,例如,在鼠标右键点击时

事件重合。当你追踪一个click 事件时,就像追踪一个mousedown ,然后是一个mouseup 事件。在dblclick 的情况下,click 也会被触发两次。

mousedown,mousemovemouseup 可以结合使用来跟踪拖放事件。

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键被按下,则为true
  • button 如果有,当鼠标事件被触发时,被按下的按钮的编号(通常0=主按钮,1=中间按钮,2=右按钮)。对点击按钮引起的事件起作用(如点击)。
  • buttons 如果有的话,一个数字表示在任何鼠标事件中按下的按钮。
  • clientX / 鼠标指针相对于浏览器窗口的x和y坐标,与滚动无关clientY
  • ctrlKey 如果事件发生时,ctrl键被按下,则为true
  • metaKey 如果事件发生时,meta键被按下,则为真
  • movementX / 鼠标指针的x和y坐标相对于最后一个mousemove事件的位置。用来跟踪鼠标移动时的速度movementY
  • region 在Canvas API中使用
  • relatedTarget 事件的次要目标,例如移动时。
  • screenX / 屏幕坐标中鼠标指针的x和y坐标screenY
  • shiftKey 如果事件发生时按下了shift键,则为true