Blog Details

Home世界杯集锦视频JavaScript 鼠标事件

JavaScript 鼠标事件

摘要:在本教程中,您将学习有关 JavaScript 中的基本鼠标事件及其属性。

JavaScript 鼠标事件简介当您使用鼠标与页面上的元素进行交互时,会触发鼠标事件。DOM Level 3 事件定义了九种鼠标事件。

mousedown、mouseup 和 click 事件当您单击某个元素时,会按以下顺序触发至少三个鼠标事件。

当您在元素上按下鼠标按钮时,会触发mousedown事件。当您在元素上释放鼠标按钮时,会触发mouseup事件。当在元素上检测到一个mousedown事件和一个mouseup事件时,会触发click事件。如果您在元素上按下鼠标按钮,将鼠标光标移出元素,然后释放鼠标按钮。只有mousedown事件会在元素上触发。

同样,如果您按下鼠标按钮,将鼠标移动到元素上,然后释放鼠标按钮,只有mouseup事件会在元素上触发。

在这两种情况下,click事件都不会触发。

dblclick 事件在实践中,您很少使用dblclick事件。当您双击某个元素时,会触发dblclick事件。

触发dblclick事件需要两次单击事件。dblclick事件有四个不同的事件,按以下顺序触发:

mousedown mouseup click mousedown mouseup click dblclick图片显示click事件始终在dblclick事件之前发生。

如果您在同一个元素上注册了click和dblclick事件处理程序,您将无法知道用户是单击了元素还是双击了元素。

mousemove每当您在元素周围移动鼠标光标时,mousemove事件就会重复触发。当鼠标在元素周围移动时,即使只是移动一个像素,mousemove事件也会每秒触发很多次。如果事件处理程序函数很复杂,这可能会导致性能问题。

为了避免性能问题,最好只在需要时添加mousemove事件处理程序,并在不再需要时立即将其删除,例如:

element.onmousemove = mouseMoveEventHandler;

// ...

// later, no longer use

element.onmousemove = null;Code language: JavaScript (javascript)mouseover / mouseout当鼠标光标在元素外部,然后移动到元素边界内时,会触发mouseover事件。

当鼠标光标在元素上,然后移动到另一个元素时,会触发mouseout事件。

mouseenter / mouseleave当鼠标光标在元素外部,然后移动到元素边界内时,会触发mouseenter事件。

当鼠标光标在元素上,然后移动到元素边界外时,会触发mouseleave事件。

mouseenter和mouseleave都不会冒泡,也不会在鼠标光标移动到子元素上时触发。

注册鼠标事件处理程序要注册鼠标事件,您可以使用以下步骤:

首先,使用querySelector()或getElementById()方法选择元素。然后,使用addEventListener()方法注册鼠标事件。例如,假设您有以下按钮:

Code language: HTML, XML (xml)要注册鼠标单击事件处理程序,请使用以下代码:

let btn = document.querySelector('#btn');

btn.addEventListener('click',(event) => {

console.log('clicked');

});Code language: JavaScript (javascript)或者,您可以将鼠标事件处理程序分配给元素的属性:

let btn = document.querySelector('#btn');

btn.onclick = (event) => {

console.log('clicked');

};Code language: JavaScript (javascript)在传统系统中,您可能会发现事件处理程序是在元素的 HTML 属性中分配的:

Code language: HTML, XML (xml)最好使用addEventListener()来注册鼠标事件处理程序。

检测鼠标按钮传递给鼠标事件处理程序的event对象具有一个名为button的属性,该属性指示哪个鼠标按钮在鼠标上按下以触发该事件。

鼠标按钮由数字表示:

0:按下主鼠标按钮,通常是左按钮。1:按下辅助按钮,通常是中间按钮或滚轮按钮。2:按下辅助按钮,通常是右按钮。3:按下第四个按钮,通常是“浏览器后退”按钮。4:按下第五个按钮,通常是“浏览器前进”按钮。请参见以下示例:

JS Mouse Events - Button Demo

Code language: HTML, XML (xml)在此示例中,当您使用鼠标单击按钮(左键单击、右键单击和中键单击)时,它会在

元素上显示相应的消息。

修饰键当您单击元素时,您可能会按下一个或多个修饰键:Shift、Ctrl、Alt 和 Meta。

请注意,Meta 键在 Windows 键盘上是 Windows 键,在 Apple 键盘上是 Command 键。

要检测这些修饰键是否已按下,您可以使用传递给鼠标事件处理程序的event对象。

event对象有四个布尔属性,如果键正在被按下,则每个属性都设置为true,如果键没有被按下,则设置为false。

请参见以下示例:

JS Modifier Keys Demo

Code language: HTML, XML (xml) 获取屏幕坐标传递给鼠标事件处理程序的事件的screenX和screenY属性返回相对于整个屏幕的鼠标位置的屏幕坐标。

另一方面,clientX和clientY属性提供应用程序客户端区域内发生鼠标事件的水平和垂直坐标。

请参见以下演示:

JS Mouse Location Demo

Move your mouse to see its location.

Code language: HTML, XML (xml) 摘要DOM Level 3 定义了九种鼠标事件。使用addEventListener()方法来注册鼠标事件处理程序。event.button指示哪个鼠标按钮被按下以触发鼠标事件。可以使用传递给鼠标事件处理程序的事件对象的属性获取修饰键:alt、shift、ctrl 和 meta(Mac)。screenX和screenY属性返回鼠标指针在屏幕坐标中的水平和垂直坐标。event对象的clientX和clientY属性返回应用程序客户端区域内发生鼠标事件的水平和垂直坐标。测验 本教程对您有帮助吗? 是 否 发送 取消

Copyright © 2088 世界杯历史_2018世界杯亚洲区预选赛 - mcryt.com All Rights Reserved.
友情链接