mouseentermouseleave

article/2025/11/10 5:34:14

mouseenter&mouseleave

简介

mouseenter当指针设备(通常是鼠标)移动到连接了侦听器的元素上时,会触发该事件。

mouseover 当指针设备(通常是鼠标)移动到附加了侦听器的元素或其子项之一上时,会触发该事件。

mouseleave当指针设备(通常是鼠标)移出连接有侦听器的元素时,会触发该事件。

mouseout 当指针设备(通常是鼠标)移出已连接或关闭其子节点的元素时,会触发该事件。

注意

  • mouseenter虽然类似mouseover,但它的不同之处在于它不会冒泡,并且当指针从其后代的物理空间之一移动到其自己的物理空间时,它不会被发送到任何后代。
  • mouseleavemouseout是相似的,但不同的是mouseleave不冒泡和mouseout冒泡。 这意味着mouseleave当指针退出元素及其所有后代mouseout时触发,而当指针离开元素离开元素的后代之一时触发(即使指针仍在元素内)。
  • mouseout当您移动到子元素时,它也会在父元素上触发,因为您移出父元素的可见空间。

                                     ![mouseenter.png](https://developer.mozilla.org/@api/deki/files/5908/=mouseenter.png)
    
  • mouseenter输入时,会向层次结构的每个元素发送 一个事件。当指针到达文本时,此处将4个事件发送到层次结构的四个元素。

mouseover.png

  • 一个单独的mouseover事件被发送到DOM树的最深层元素,然后它会在层次结构中冒泡,直到它被处理程序取消或到达根目录。

mouseenter.png

  • mouseleave离开它们时,会向层次结构的每个元素发送一个事件。当指针从文本移动到此处表示的最外部div之外的区域时,此处将4个事件发送到层次结构的四个元素。

mouseover.png

  • 一个单独的mouseout事件被发送到DOM树的最深层元素,然后它会在层次结构中冒泡,直到它被处理程序取消或到达根目录。

Note:

mouseenter结合其对称事件的行为mouseleavemouseenterDOM事件以与CSS :hover伪类非常相似的方式起作用。

语法


element.onmouseenter = function(){...code...}element.onmouseover = function(){...code...}element.onmouseleave = function(){...code...}element.onmouseout = function(){...code...}document.addEventListener("mouseenter",function () {...code...})document.addEventListener("mouseover",function () {...code...})document.addEventListener("mouseleave",function () {...code...})document.addEventListener("mouseout",function () {...code...})

示例

<div id="parent" class="parent"><div id="child" class="child">child</div>
</div>
(function (){var button = document.getElementById("parent"),popup = document.getElementById("child");button.onmouseenter = function (e){e = e || window.event;var target = e.target || e.srcElement;display.innerHTML = "button mouseenter target:"+ target.id + "<br>";}button.onmouseleave = function (e){e = e || window.event;var target = e.target || e.srcElement;display.innerHTML = "button mouseleave target:"+ target.id + "<br>";}popup.onmouseenter = function (e){e = e || window.event;var target = e.target || e.srcElement;display.innerHTML = "button mouseenter target:"+ target.id + "<br>";}popup.onmouseleave = function (e){e = e || window.event;var target = e.target || e.srcElement;display.innerHTML = "button mouseleave target:"+ target.id + "<br>";}
}())

应用场景

  • 鼠标事件不需要冒泡则使用mouseenter和mouseleave
  • 鼠标事件要冒泡则使用mouseover和mouseout

浏览器兼容性

特征ChromeFirefoxSafariEdgeIEOpera
基本支持yesyesyesyesyesyes

参考:

  1. https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter
  2. https://developer.mozilla.org/en-US/docs/Web/Events/mouseleave

http://chatgpt.dhexx.cn/article/MwJUrLNb.shtml

相关文章

mouseenter

这几天做下拉菜单&#xff0c;一直想实现鼠标停留在以及菜单即可显示二级菜单并可以浏览二级菜单的功能&#xff0c;最初走了很多弯路。 dropdown 写在是用Bootstrap.js …

mouseenter与mouseover的区别

这是两个事件类型&#xff0c;都是表示鼠标经过触发事件。 还有对应的mouseleave和mouseout&#xff0c;表示鼠标移开触发事件 区别是&#xff1a;mouseenter、mouseleave 不触发冒泡事件 mouseover、mouseout 会触发冒泡事件 首先事件触发后会产生两个阶段&#xff0c;一个是…

简单了解mouseover与mouseenter的使用场景

我们知道鼠标经过和离开的事件有俩种&#xff1a; mouseenter与mouseover&#xff0c;那么这里俩个事件有什么区别呢&#xff1f; mouseenter&#xff1a;给谁注册的事件&#xff0c;就必须经过谁&#xff0c;才能触发该事件 简单来说mouseenter不能冒泡&#xff0c;也就是说经…

mouseenter鼠标事件

mouseenter鼠标事件 1.当鼠标移动到元素上时就会触发mouseenter事件 2.类似mouseover&#xff0c;它们两者之间的差别是 mouseover鼠标经过自身盒子会触发&#xff0c;经过子盒子还会触发。mouseenter只会经过自身盒子触发 这样的原因就是 mouseenter不会冒泡。 <!DOCTYP…

mouseenter和mouseleave与mouseover和mouseout的区别

一、mouseenter&#xff08;指针穿过&#xff0c;子集不执行&#xff09; 当鼠标指针穿过&#xff08;进入&#xff09;被选元素时&#xff0c;会发生 mouseenter 事件。 mouseenter() 方法触发 mouseenter 事件&#xff0c;或添加当发生 mouseenter 事件时运行的函数。 注意…

mouseenter、mouseleave、mouseover和mouseout的区别

mouseenter(进入)、mouseleave、mouseover(覆盖)和mouseout是常用来判断鼠标移出和移入的事件句柄&#xff0c;虽然功能上差不多&#xff0c;但是细节却有不同的地方。 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>随…

mouseover事件和mouseenter事件以及mouseleave事件和mouseout事件的区别

1.mouseover事件与mouseenter事件 mouseover事件&#xff1a;不论鼠标指针穿过被选元素或其子元素&#xff0c;都会触发 mouseover 事件。 mouseenter事件&#xff1a;只有在鼠标指针穿过被选元素时&#xff0c;才会触发 mouseenter 事件。 2.mouseout事件与mouseleave事件 …

Git - 教程(廖雪峰)

史上最浅显易懂的Git教程&#xff01; 为什么要编写这个教程&#xff1f;因为我在学习Git的过程中&#xff0c;买过书&#xff0c;也在网上Google了一堆Git相关的文章和教程&#xff0c;但令人失望的是&#xff0c;这些教程不是难得令人发指&#xff0c;就是简单得一笔带过&am…

廖雪峰git学习(3)分支管理【待续】

创建与合并分支 创建分支 git checkout -b dev #创建并切换到分支dev相当于以下两条 git branch dev #创建分支dev git checkout dev #切换到分支dev git branch #可查看当分支 合并分支 git merge dev #将dev分支与master分支合并 删除分支 git branch -d dev#删除dev分支

Git操作——廖雪峰Git教程

这个笔记主要记录的命令&#xff0c;用来翻查命令使用。 学习了一部分&#xff0c;剩下的部分后续更新o(&#xffe3;▽&#xffe3;)ブ 廖雪峰的Git教程 零散的命令&#xff1a; 显示当前目录——pwd显示隐藏目录——ls -ah查看文件 —— cat <文件名> 创建版本库 …

廖雪峰git教程学习记录

1. 下载安装 git官网下载&#xff1a;https://git-scm.com/downloads 百度网盘链接: https://pan.baidu.com/s/1quoLbBcbWaGJ05do4DX9Pw 提取码: xqe3 直接下载安装&#xff0c;完成后在开始菜单找“Git”--“Git Bash” 点击打开&#xff0c;如下图形式显示 安装成功。 2. …

Python 爬虫:把廖雪峰的教程转换成 PDF 电子书

。前两天&#xff0c;有读者在微信公众平台 问道&#xff1a;可以推荐一本 Python 入门的教程吗&#xff1f;我说&#xff1a;廖雪峰的 Python 教程她说&#xff1a;有没有电子书呢&#xff1f;我说&#xff1a;没有&#xff0c;但你可以用 Google 搜一下&#xff0c;找到了记得…

git常用命令总结--廖雪峰老师Git教程命令总结

学习了廖雪峰老师的Git教程之后的命令总结&#xff0c;重点更新第十项关于git和远程仓库的东西。 如果没有学过&#xff0c;这是传送门 2021.02.19更新&#xff1a;第十章第12节--切换远程分支并拉取远程分支到本地&#xff0c;第十章第13节--git不用每次都要输入用户名密码 …

学习廖雪峰的Git教程

学习廖雪峰的git教程&#xff1a;http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.创建版本库&#xff1a; 在一个空目录下&#xff1a;git init 把这个目录变成Git可以管理的仓库。 2.添加文件到仓库&#xff1a; 添加文件到仓库目…

git学习笔记——廖雪峰git教程

OK&#xff0c;先附上教程——廖雪峰的官方网站 友情连接&#xff1a;git官网 简介 这里我只想引用他的原文&#xff1a; Linus可以向BitMover公司道个歉&#xff0c;保证以后严格管教弟兄们&#xff0c;嗯&#xff0c;这是不可能的。实际情况是这样的&#xff1a; Linus花了…

廖雪峰Git学习笔记(超级无敌详细)

Git 1. 创建仓库1.1初始化一个Git仓库1.2 添加文件到Git仓库 2. 时光穿梭2.1 版本回退2.2 工作区和暂存区2.3 管理修改2.4 撤销修改2.5 删除文件 3. 远程仓库3.1 添加远程仓库3.2 删除远程仓库3.3 从远程仓库克隆 4. 分支管理4.1 创建与合并分支4.1.1 创建分支4.1.2 合并分支4.…

廖雪峰git教程学习

廖雪峰git教程 git – Linus在2周内用c写的 1.1 基本概念 版本控制系统&#xff0c;追踪文本文件的改动&#xff0c;文件、视频等二进制文件则不可追踪&#xff08;微软的word也是二进制文件&#xff09;HEAD 指向当前分支&#xff0c;表示当前版本&#xff08;最新的提交&am…

廖雪峰Git教程笔记

文章目录 1 什么是Git1.1 Git的诞生1.2 集中式vs分布式1.3 安装Git1.3.1 在Windows上安装Git1.3.2 在Linux上安装Git 1.4 创建第一个项目learngit1.4.1 创建版本库1.4.2 初始化仓库1.4.3 添加文件到版本库1.4.4 Git使用小结 2 版本控制2.1 版本更新2.1.1 git status查看仓库状态…

Git 详解 和 廖雪峰 Git 教程

转载&#xff1a;廖雪峰 git 教程&#xff1a;https://www.liaoxuefeng.com/wiki/896043488029600 GitHub 秘籍&#xff1a;https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.zh-cn.md Git Community Book 中文版&#xff1a;http://gitbook.liuhui998.com…

【教程搬运】廖雪峰Git的使用教程(二)

廖雪峰的Git使用教程 5 分支管理5.1 创建与合并分支5.2 解决冲突5.3 分支管理策略5.4 Bug分支5.5 丢弃未被合并的分支5.6 多人协作5.7 Rebase 6 标签管理6.1 创建标签6.2 管理标签 7 使用Github8 使用Gitee9 自定义Git9.1 忽略特殊文件9.2 配置别名9.3 搭建Git服务器 10 使用So…