Javascript 简明教程
JavaScript - Mouse Events
JavaScript 鼠标事件允许用户使用鼠标控制和与网页进行互动。这些事件会响应用户的点击、滚动、拖动和其他鼠标移动操作来触发特定功能或动作。
要处理 JavaScript 中的鼠标事件,您可以使用 addEventListener() 方法。addEventListener() 方法接受两个参数:事件类型和事件处理程序函数。事件类型是您想要处理的事件的名称,事件处理程序函数是在事件发生时所调用的函数。
在 Web 开发中,JavaScript 通过一系列事件提供了一种强大的机制来响应用户的鼠标互动操作。通过捕获和处理各种与鼠标相关的操作,这些事件使开发者能够创建动态且具有交互性的 Web 应用程序。
Common Mouse Events
以下是 JavaScript 中最常见的几种鼠标事件:
Mouse Event |
Description |
Click |
当一个元素感受到鼠标按钮的按下时,它触发 click 事件。 |
Double Click |
在快速双击鼠标按钮时触发 dblclick 事件。 |
鼠标按下和鼠标抬起 |
鼠标点击的开始触发“mousedown”事件,而完成该点击则导致发生“mouseup”事件。 |
Mouse Move |
当鼠标指针移到一个元素上时,它触发“mousemove”事件;该事件向开发人员提供关于鼠标的位置信息。这些数据使他们能够设计基于动态鼠标移动的响应式界面。 |
Context Menu |
当用户尝试打开上下文菜单时,通常通过右键点击,他们触发了 contextmenu 事件。此事件允许开发人员自定义或禁止上下文菜单的默认行为。 |
Wheel |
当鼠标滚轮旋转时,它触发“wheel event”;此特定事件通常在实现诸如缩放或滚动这样的功能中表现出来。 |
Drag and Drop |
诸如 dragstart、dragend、dragover、dragenter、dragleave 和 drop 这样的事件与拖放功能有关。它们允许开发人员为在一个网页内拖动元素创建交互式界面。 |
Example : Click Event
在这个例子中,我们演示 click 事件。当按钮被点击时,它向控制台信息打印一个合适的消息,即“点击!”。这个事件经常在提交表单时使用。
<!DOCTYPE html>
<html>
<head>
<title>Click Event Example</title>
</head>
<body>
<button id="clickButton">Click me!</button>
<p id = "output"></p>
<script>
const clickButton = document.getElementById('clickButton');
const outputDiv = document.getElementById("output");
clickButton.addEventListener('click', function(event) {
outputDiv.innerHTML += 'Clicked!'+ JSON.stringify(event) + "<br>";
});
</script>
</body>
</html>
Example: Double Click Event
此例中 dblclick 事件会操作,在指定的按钮被双击时触发。我们将事件侦听器附加到一个 ID 为“doubleClickButton”的元素。用户双击按钮时会提示一个记录控制台消息的功能,该消息确认了他们与按钮的交互。
<!DOCTYPE html>
<html>
<head>
<title>Double Click Event Example</title>
</head>
<body>
<button id="doubleClickButton">Double-click me!</button>
<p id = "output"></p>
<script>
const doubleClickButton = document.getElementById('doubleClickButton');
const outputDiv = document.getElementById("output");
doubleClickButton.addEventListener('dblclick', function(event) {
outputDiv.innerHTML += 'Double-clicked!' + JSON.stringify(event) + "<br>";
});
</script>
</body>
</html>
Example: Mouse Down and Mouse Up Events
在此场景中,mousedown 和 mouseup 事件的使用得到了体现:这两个事件都应用于一个被标识为“mouseUpDownDiv”的 <div> 元素。建立了两个不同的事件侦听器;一个响应鼠标按钮的向下操作,而另一个响应该按钮的释放或向上运动。在按压指定的 div(mousedown)时,一条消息会出现在你的控制台日志中,表明用户已经按下了鼠标按钮。当用户释放鼠标按钮(mouseup)时,我们还会记录另一条消息来表明鼠标按钮已经抬起。
<!DOCTYPE html>
<html>
<head>
<title>Mouse Down and Mouse Up Events Example</title>
</head>
<body>
<div id="mouseUpDownDiv"
style="width: 600px; height: 100px; background-color: lightblue;">
Please perform mouse down and up event any where in this DIV.
</div>
<p id = "output"></p>
<script>
const mouseUpDownDiv = document.getElementById('mouseUpDownDiv');
const outputDiv = document.getElementById("output");
mouseUpDownDiv.addEventListener('mousedown', function(event) {
outputDiv.innerHTML += 'Mouse button down!' + JSON.stringify(event) + "<br>";
});
mouseUpDownDiv.addEventListener('mouseup', function(event) {
outputDiv.innerHTML += 'Mouse button up!' + JSON.stringify(event) + "<br>";
});
</script>
</body>
</html>
Example: Mouse Move Event
在这个实例中,我们使用 mousemove 事件来监视鼠标指针在被标识为“mouseMoveDiv”的特定 <div> 元素上的移动。处理程序功能从表示指针 X-Y 坐标的事件对象中提取 clientX 和 clientY 属性。后来,这些属性被记录到控制台中;从而在用户将光标定位在指定的 div 区域中的确切位置上提供实时反馈。
<!DOCTYPE html>
<html>
<head>
<title>Mouse Move Event Example</title>
</head>
<body>
<div id="mouseMoveDiv"
style="width: 600px; height: 200px; background-color: lightgreen;">
Please move you mouse inside this DIV.</div>
<p id = "output"></p>
<script>
const mouseMoveDiv = document.getElementById('mouseMoveDiv');
const outputDiv = document.getElementById("output");
mouseMoveDiv.addEventListener('mousemove', function(event) {
const x = event.clientX;
const y = event.clientY;
outputDiv.innerHTML += `Mouse moved to (${x}, ${y})` + JSON.stringify(event) + "<br>";
});
</script>
</body>
</html>
Example: Wheel Event
此示例展示了 wheel 事件,该事件在鼠标滚轮转动时被激活。事件侦听器被附加到一个 ID 为“wheelDiv”的 <div> 元素。当用户在这个 div 上转动鼠标滚轮时,关联的功能会向控制台记录一条消息,表明鼠标滚轮已经转动。
<!DOCTYPE html>
<html>
<head>
<title>Wheel Event Example</title>
</head>
<body>
<div id="wheelDiv"
style="width: 600px; height: 200px; background-color: palevioletred;">
Please bring the curser inside this DIV and rotate the wheel of mouse.</div>
<p id = "output"></p>
<script>
const wheelDiv = document.getElementById('wheelDiv');
const outputDiv = document.getElementById("output");
wheelDiv.addEventListener('wheel', function(event) {
outputDiv.innerHTML += 'Mouse wheel rotated!'+ event + "<br>";
});
</script>
</body>
</html>