mouseout、mouseover和mouseleave、mouseenter区别

简介:

今天在使用鼠标事件时,用错了mouseout,于是做个测试总结。

结论:

mouseenter:当鼠标移入某元素时触发。

mouseleave:当鼠标移出某元素时触发。

mouseover:当鼠标移入某元素时触发,移入和移出其子元素时也会触发。

mouseout:当鼠标移出某元素时触发,移入和移出其子元素时也会触发。

mousemove:鼠标在某元素上移动时触发,即使在其子元素上也会触发。

mouseout、mouseover和mouseleave、mouseenter最大的区别,在于子元素连带触发。

例子:

复制代码
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    .a{
      width: 500px;
      height: 500px;
      background: aliceblue;
    }
    .b{
      width: 200px;
      height: 200px;
      background: beige;
    }
    .c{
      width: 100px;
      height: 100px;
      background: violet;
    }
    </style>
</head>
<body>
    <div class="a">A
      <div class="b"
        onmouseenter="mouseenter()"
        onmouseleave="mouseleave()"
        onmouseout="mouseout()"
        onmouseover="mouseover()"
        onmousemove="mousemove()">B
        <div class="c">C
        </div>
      </div>
    </div>
    <script>
      function mouseenter(){
        console.log('mouseenter')
      }
      function mouseleave(){
        console.log('mouseleave')
      }
      function mouseout(){
        console.log('mouseout')
      }
      function mouseover(){
        console.log('mouseover')
      }
      function mousemove(){
        console.log('mousemove')
      }
    </script>
</body>
</html>
复制代码

效果:

操作:

从A元素到C元素,再从C回到A,控制台输出如下:

演示地址:

http://htmlpreview.github.io/?https://github.com/codingforme/code-learn/blob/master/css-demo/mouse-event.html



本文转自 海角在眼前 博客园博客,原文链接: http://www.cnblogs.com/lovesong/p/7781033.html  ,如需转载请自行联系原作者


相关文章
|
移动开发 小程序 安全
【个人小程序和企业小程序的区别】
【个人小程序和企业小程序的区别】
515 0
|
小程序 开发者
小程序顶部自定义导航栏添加背景图的实现
小程序顶部自定义导航栏添加背景图的实现
317 0
|
7月前
|
存储 人工智能 数据库
Agno:18.7K Star!快速构建多模态智能体的轻量级框架,运行速度比LangGraph快5000倍!
Agno 是一个用于构建多模态智能体的轻量级框架,支持文本、图像、音频和视频等多种数据模态,能够快速创建智能体并实现高效协作。
1593 22
Agno:18.7K Star!快速构建多模态智能体的轻量级框架,运行速度比LangGraph快5000倍!
|
JavaScript
Vue打包后页面出现空白解决办法(臻享版)
1. 命令行输入:**npm run build** 打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目。
1712 1
|
消息中间件 人工智能 Kubernetes
共建共享数字世界的根:阿里云打造全面的云原生开源生态
目前,阿里云开源主要涵盖云原生、操作系统、大数据&AI、数据库四大领域,在 GitHub 上收获 Star 总数超百万,阿里已经连续十年蝉联中国厂商开源活跃度、影响力第一。
共建共享数字世界的根:阿里云打造全面的云原生开源生态
|
11月前
|
编解码 前端开发 JavaScript
前端:Rem 及其转换原理
Rem是一种用于前端开发的相对字体大小单位,它基于根元素的字体尺寸来定义文本大小,有助于实现响应式布局和可维护性。Rem的转换原理是通过相对于HTML根元素的字体大小来设置子元素的字体大小,从而实现统一的比例调整,提高页面的适应性和灵活性。此方法简化了跨浏览器和设备的布局调整,增强了用户体验。
|
前端开发 API 调度
React 之从 requestIdleCallback 到时间切片
在上篇《React 之 requestIdleCallback 来了解一下》,我们讲解了 requestIdleCallback 这个 API,它可以实现在浏览器空闲的时候执行代码,这就与 React 的理念非常相似,都希望执行的时候不影响到关键事件,比如动画和输入响应,但因为兼容性、requestIdleCallback 定位于执行后台和低优先级任务、执行频率等问题,React 在具体的实现中并未采用 requestIdleCallback,本篇我们来讲讲 React 是如何实现类似于 requestIdleCallback,在空闲时期执行代码的效果,并由此讲解时间切片的背后实现。
522 0
|
11月前
|
人工智能 搜索推荐 算法
AI与未来教育:个性化学习的实践
【10月更文挑战第3天】在21世纪科技浪潮中,人工智能(AI)正重塑教育领域,尤其在个性化学习方面展现出巨大潜力。本文探讨了AI如何通过智能评估、定制化学习路径、情感识别及虚拟助教等方式,提升教育质量和效率,激发每个学生的学习潜能。尽管面临数据隐私和技术普及等挑战,AI与未来教育的融合正开启新篇章,有望实现真正的“因材施教”。
|
前端开发 程序员 API
React技术栈-React路由插件之react-router的基本使用
这篇博客介绍了React路由插件react-router的基本使用,包括其概念、API、以及如何通过实战案例在React应用中实现SPA(单页Web应用)的路由管理。
233 9
|
存储 JavaScript Windows
Electron——如何检测应用程序的未响应状态
Electron——如何检测应用程序的未响应状态
211 0