• 鼠标事件分析(onmouseenter、onmouseover、onmouseleave和onmouoseout的区别)


    先上个代码

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset=" utf-8">
     5 <style>
     6     #biggest,#biggestS  {
     7         height: 300px;
     8         width: 300px;
     9         background-color: cadetblue;
    10         margin: 200px auto;
    11         position: relative;
    12     }
    13     #middle, #middleS {
    14         height: 200px;
    15         width: 200px;
    16         position: absolute;
    17         background-color: antiquewhite;
    18         top: 50px;
    19         left: 50px;
    20         text-align: center;
    21         font-weight: bold;
    22         line-height: 200px;
    23         vertical-align: middle;
    24     }
    25     
    26 </style>
    27 </head>
    28 <body>
    29 <div id="biggest" onmouseenter="console.log('我enter了父div')" onmouseleave="console.log('我leave了父标签')">
    30 <div id="middle" onmouseenter="console.log('我enter了子div')" onmouseleave="console.log('我leave了子标签')">
    31     enter and leave
    32 </div>
    33 </div>
    34 <div id="biggestS" onmouseover="console.log('我over了父div')" onmouseout="console.log('我out了父标签')">
    35 <div id="middleS" onmouseover="console.log('我over了子div')" onmouseout="console.log('我out了子标签')">
    36     over and out
    37 </div>
    38 </div>
    39 </body>
    40 </html>

    该页面运行的时候是这样的

     对于第一个组合mouseenter和mouseleave,当我们鼠标进入的蓝色边框的时候,理所当然父div的事件会被执行,也就是控制台输出

     接着移入黄色div区块的时候

     再从里面移出的时候

     当我们进入子div的时候,父div的移出事件并不会被执行,你可以看作是子div是长在父div上的,两者是一体的

    这是刚刚进入父div时的输出

    一旦我们把鼠标从父div移入子div中,有个有趣的情况

     

     首先当鼠标一碰及子div的时候父标签的移出事件会被执行,接着执行子div的移入和以及父标签的二次移入,

    再继续鼠标从子div移出到父div中

     先是执行了子标签的移出事件,再执行父标签的移出事件和父标签的移入事件。

    分析两个组合的不同现象,在使用over和out的时候,事件是支持冒泡的,也就是说我们的子元素一旦被触发了,不管是点击还是说你是鼠标移入移出,那么父元素也有点击或者鼠标移入移出的话,父元素的事件也会被执行,一般情况下我们使用enter和leave便足够做很多事情了。

  • 相关阅读:
    浏览器是怎样工作的二:渲染引擎 HTML解析(1)(转)
    凯文.都迪的超级记忆力训练教程
    程序员的修炼之道
    我编程我快乐——程序员的职业规划
    SQL Server 数据库备份和还原认识和总结(一)
    SQL Server 管理数据收集
    汇总SQL Server里的相关运算符、子句、谓词等
    SQL Server 数据库备份和还原认识和总结(二)
    解决报表控件报CS0433错误
    通过笔记本配件,理解抽象类接口和委托事件
  • 原文地址:https://www.cnblogs.com/xzsblog/p/13067122.html
Copyright © 2020-2023  润新知