onmouseover 与 onmouseenter 作为两个效果相似的鼠标事件,经常被我们使用,但是二者还是有区别的。

在具体的使用中,两者的效果是相似的,使用的场景并没有太大的区别,效果类似css中的hover。但是,两者还是存在一定的区别的,那就是mouseenter不支持冒泡,而mouseover支持冒泡。冒泡指的是事件冒泡,即在子元素上触发的事件会向上传递至父级元素,并触发绑定在父级元素上的相应事件。

那么,如何证明这两个事件是否支持,事件冒泡呢,js的事件机制给了我们一个很好的解决方法,那就是target(事件源),在事件触发时,浏览器会产生一个event对象,在这个对象上有一个target属性,指向了触发事件的最底层的DOM,通过target我们可以准确的找到事件触发的元素。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>onmouseover&onmouseenter</title><style> #outer{position: relative;width: 200px;height: 200px;margin: 100px;border: 1px solid #ccc;}#inner{position: absolute;left: -50px;top: 0;width: 100px;height: 100px;border: 1px solid #ccc;}       </style>
</head>
<body><div id="outer">    <div id="inner"></div></div><script>outer.onmouseenter = function(e){console.log(e.target.id) // outer}outer.onmouseover = function(e){console.log(e.target.id) // inner}</script>
</body>
</html>

效果图:

当鼠标移到outer时:


当鼠标移到outer中的inner时:


当鼠标移到outer外的inner时:

onmouseenter和onmouseover相关推荐

  1. 【unity学习笔记】OnMouseEnter、OnMouseOver、OnMouseExit

    声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨.可作参考,但不保证绝对正确.如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦 OnMouseEnter.OnMouseOver.OnMo ...

  2. onmouseenter和onmouseover的区别

    问题出现-项目需求: 最近在做的项目,需要一个上传图片的功能,需要在上传成功后,鼠标悬浮到图片上显示重新上传按钮,使用了onmouseover和onmouseout来控制按钮的显示和隐藏,发现当用on ...

  3. onMouseEnter,onMouseLeave,onMouseOver,onMouseOut的区别

    1.onMouseEnter和onMouseLeave: onMouseEnter:当鼠标移入指定区域的时候触发,但是不支持冒泡,进入或者离开子组件都不触发. onMouseLeave:当鼠标移出指定 ...

  4. onmouseenter与onmouseover区别

    两事件都是鼠标移至节点上执行:但是onmouseover移至节点上,停止在移动,依旧在节点上时还是会执行,也就是说会执行多次:而onmouseenter仅是进入节点时执行一次.

  5. 鼠标移入事件onmouseover、onmouseenter 鼠标移出事件onmouseleave、onmouseout 的区别

    onmouseenter和onmouseover都是鼠标移入事件,即鼠标放入到元素上相应事件触发,但是这两个事件是存在差别的. onmouseover.onmouseout子元素会影响到父元素, 而o ...

  6. JS鼠标事件onMouseOver和onMouseOut的坑

    在React中监听鼠标点击事件,UI如下,左右有padding. 然后鼠标从左往右慢慢滑入HOMR再滑出. UI代码: 事件绑定在外层父元素上. 事件触发顺序如下. 1 鼠标只碰触父元素padding ...

  7. Unity3D中的函数方法及解释

    一.刷新函数 Update 当MonoBehaviour启用时,其Update在每一帧被调用. LateUpdate 当Behaviour启用时,其LateUpdate在每一帧被调用. FixedUp ...

  8. Unity3D时间顺序与功能

    Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Start,Update等函数,以下做个总结. Awake 当 ...

  9. dojo使用query dojo/query

    要使用query,就要引入dojo/query包. query可以根据Dom里节点的标签名.id名.class名来检索一个或多个节点. -------------------------------- ...

最新文章

  1. VS Code配置PHP XDebug
  2. BZOJ1460: Pku2114 Boatherds
  3. mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)
  4. 【分布式计算】分布式日志导入工具-Flume
  5. ansible roles角色(模块化)详解
  6. 慧联A8最新检测使用教程V2.0.3
  7. 深入理解@Autowired注解
  8. 萤火虫小程序_【实用工具】微信小程序及练船表(更新至2020年12月1日)
  9. 刘寅:TiDB 工具链和生态
  10. Linux keypad 设备树,GitHub - bilibilifmk/rpi_mt: 树莓派移动终端 全键盘及2.4寸tft材质屏幕...
  11. 常用的软件(百度网盘分享:永久有效)
  12. CH32F203C8T6 32位增强型低功耗Cortex-M3单片机
  13. to_Date()用法
  14. 娱乐蓝屏程序, 禁用键盘鼠标, 指定键可恢复
  15. ETL-kettle/pentaho的二次开发
  16. python实现字符串类型 str 转换为 list 类型(unicode 转换为 list)
  17. 讯飞语音识别之语音转文字------java
  18. 解决安装import nonebot后报错importError问题
  19. OV4689 和IMX179的dts中节点的区别,以及dts节点的注释说明,基于rv1108平台
  20. JavaScript操作BOM对象

热门文章

  1. C语言中利用宏进行面向对象(OOP)的操作
  2. 【PAT甲级】1001 A+B Format
  3. CyclicBarrier 用法详解
  4. 【芝麻背调百科】​员工隐瞒婚姻状况入职是否构成劳动法意义上的欺诈?
  5. Android Fragment
  6. Python为何如此受欢迎?你真的需要学习Python嘛?学了之后能做些什么?
  7. CAN在线升级(STM32F103ZE)
  8. 江恩循环周期理论(转载)
  9. 19.1 File类:构造方法、pathSeparator、separator、、getAbsolutePath、getName、length
  10. 安卓app调用手机相册