元素:mouseout 事件

基线 广泛可用

此功能已得到良好确立,并且可以在许多设备和浏览器版本中使用。它自以下时间起在各个浏览器中可用 2015 年 7 月.

当使用指向设备(通常是鼠标)移动光标使其不再包含在元素或其子元素中时,mouseout 事件将在 Element 上触发。

如果光标进入子元素,则也会将 mouseout 传递给元素,因为子元素会遮挡元素的可视区域。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("mouseout", (event) => {});

onmouseout = (event) => {};

事件类型

事件属性

此接口还继承其父级 UIEventEvent 的属性。

MouseEvent.altKey 只读

如果在触发鼠标事件时 alt 键处于按下状态,则返回 true

MouseEvent.button 只读

触发鼠标事件时按下的按钮编号(如果适用)。

MouseEvent.buttons 只读

触发鼠标事件时按下的按钮(如果有)。

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.relatedTarget 只读

事件的次要目标(如果有)。

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

以下示例说明了 mouseoutmouseleave 事件之间的区别。mouseleave 事件添加到 <ul> 中,以便在鼠标退出 <ul> 时将列表颜色更改为紫色。mouseout 添加到列表中,以便在鼠标退出时将目标元素颜色更改为橙色。

当您尝试此操作时,您会发现 mouseout 会传递到各个列表项,而 mouseleave 会传递到整个列表,这得益于项的层次结构以及列表项遮挡底层 <ul> 的事实。

HTML

html
<ul id="test">
  <li>item 1</li>
  <li>item 2</li>
  <li>item 3</li>
</ul>

JavaScript

js
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 的浏览器中加载。

另请参阅