JS事件:onmouseover onmouseout &&onmouseenter onmouseleave &&onmousemove的区别

一:onmouseover、onmouseout:

       鼠标经过时自身触发事件,经过其子元素时也触发该事件;(父亲有的东西,儿子也有)
二:onmouseenter、onmouseleave:

  没有事件冒泡,其他跟onmouseover 没有区别!!!

      鼠标经过时自身触发事件,经过其子元素时不触发该事件。(父亲的东西就是父亲的,不归儿子所有) 

 三:onmousemove   :当鼠标移动的时候  常用语canvas 绘制


这四个事件两两配对使用,onmouseover、onmouseout一对,onmouseenter、onmouseleave一对,不能混合使用。

例如:当做商城导航栏,需要鼠标移动到子元素(例如:商品名)上,然后显示父元素的另一个子元素(例如:商品详情)

         此时:用onmouseover    =》示例:  将Img 放大

  • <!DOCTYPE html>  
  • <html>  
  • <head>  
  • <script>  
  • function bigImg(x)  
  • {  
  • x.style.height="160px";  
  • x.style.width="160px";  
  • }  
  • function normalImg(x)  
  • {  
  • x.style.height="100px";  
  • x.style.width="100px";  
  • }  
  • </script>  
  • </head>  
  • <body>  
  • <img onmousemove="bigImg(this)" onmouseout="normalImg(this)" border="0" src="/i/eg_smile.gif" alt="Smiley" >  
  • <p>函数 bigImg() 在鼠标指针移动到图像上时触发。此函数放大图像。</p>  
  • <p>函数 normalImg() 在鼠标指针移出图像时触发。此函数把图像的高度和宽度重置为正常尺寸。</p>  
  •   
  • </body>  
  • </html
     
    onmousemove事件:示例代码
    <!DOCTYPE html>
    <html>
    <head>
    <script>
    function myFunction(e)
    {
    x=e.clientX;
    y=e.clientY;
    coor="Coordinates: (" + x + "," + y + ")";
    document.getElementById("demo").innerHTML=coor
    }
    function clearCoor()
    {
    document.getElementById("demo").innerHTML="";
    }
    </script>
    </head>
    <body style="margin:0px;">
    <div id="coordiv" style="width:199px;height:99px;border:1px solid"
    onmousemove="myFunction(event)" onmouseout="clearCoor()"></div>
    <p>Mouse over the rectangle above,
    and get the coordinates of your mouse pointer.</p>
    <p id="demo"></p>
    </body>
    </html>
posted @ 2017-10-22 04:37  前端大佬李嘉诚  阅读(1061)  评论(0编辑  收藏  举报