元素:mouseout 事件
当使用指向设备(通常是鼠标)移动光标使其不再包含在元素或其子元素中时,mouseout
事件将在 Element
上触发。
如果光标进入子元素,则也会将 mouseout
传递给元素,因为子元素会遮挡元素的可视区域。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
addEventListener("mouseout", (event) => {});
onmouseout = (event) => {};
事件类型
一个 MouseEvent
。继承自 UIEvent
和 Event
。
事件属性
此接口还继承其父级 UIEvent
和 Event
的属性。
MouseEvent.altKey
只读-
如果在触发鼠标事件时 alt 键处于按下状态,则返回
true
。 -
触发鼠标事件时按下的按钮编号(如果适用)。
-
触发鼠标事件时按下的按钮(如果有)。
MouseEvent.clientX
只读-
鼠标指针在 视口坐标 中的 X 坐标。
MouseEvent.clientY
只读-
鼠标指针在 视口坐标 中的 Y 坐标。
MouseEvent.ctrlKey
只读-
当鼠标事件触发时,如果按下 control 键,则返回
true
。 MouseEvent.layerX
非标准 只读-
返回相对于当前层的事件水平坐标。
MouseEvent.layerY
非标准 只读-
返回相对于当前层的事件垂直坐标。
MouseEvent.metaKey
只读-
当鼠标事件触发时,如果按下 meta 键,则返回
true
。 MouseEvent.movementX
只读-
鼠标指针相对于上次
mousemove
事件位置的 X 坐标。 MouseEvent.movementY
只读-
鼠标指针相对于上次
mousemove
事件位置的 Y 坐标。 MouseEvent.offsetX
只读-
鼠标指针相对于目标节点填充边缘位置的 X 坐标。
MouseEvent.offsetY
只读-
鼠标指针相对于目标节点填充边缘位置的 Y 坐标。
MouseEvent.pageX
只读-
鼠标指针相对于整个文档的 X 坐标。
MouseEvent.pageY
只读-
鼠标指针相对于整个文档的 Y 坐标。
-
事件的次要目标(如果有)。
MouseEvent.screenX
只读-
鼠标指针在 屏幕坐标 中的 X 坐标。
MouseEvent.screenY
只读-
鼠标指针在 屏幕坐标 中的 Y 坐标。
MouseEvent.shiftKey
只读-
当鼠标事件触发时,如果按下 shift 键,则返回
true
。 MouseEvent.mozInputSource
非标准 只读-
生成事件的设备类型(
MOZ_SOURCE_*
常量之一)。例如,这使您可以确定鼠标事件是由实际鼠标还是触摸事件生成的(这可能会影响您解释与事件相关的坐标的准确程度)。 MouseEvent.webkitForce
非标准 只读-
单击时施加的压力量。
MouseEvent.x
只读-
MouseEvent.clientX
的别名。 MouseEvent.y
只读-
MouseEvent.clientY
的别名。
示例
以下示例显示了 mouseout
事件的使用。
mouseout 和 mouseleave
以下示例说明了 mouseout
和 mouseleave
事件之间的区别。mouseleave
事件添加到 <ul>
中,以便在鼠标退出 <ul>
时将列表颜色更改为紫色。mouseout
添加到列表中,以便在鼠标退出时将目标元素颜色更改为橙色。
当您尝试此操作时,您会发现 mouseout
会传递到各个列表项,而 mouseleave
会传递到整个列表,这得益于项的层次结构以及列表项遮挡底层 <ul>
的事实。
HTML
<ul id="test">
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
JavaScript
const test = document.getElementById("test");
// Briefly make the list purple when the mouse moves off the
// <ul> element
test.addEventListener(
"mouseleave",
(event) => {
// highlight the mouseleave target
event.target.style.color = "purple";
// reset the color after a short delay
setTimeout(() => {
event.target.style.color = "";
}, 1000);
},
false,
);
// Briefly make an <li> orange when the mouse moves off of it
test.addEventListener(
"mouseout",
(event) => {
// highlight the mouseout target
event.target.style.color = "orange";
// reset the color after a short delay
setTimeout(() => {
event.target.style.color = "";
}, 500);
},
false,
);
结果
规范
规范 |
---|
UI 事件 # event-type-mouseout |
HTML 标准 # handler-onmouseout |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。