美文网首页
鼠标移动事件,子级因为冒泡影响父级

鼠标移动事件,子级因为冒泡影响父级

作者: GQ1994 | 来源:发表于2016-12-04 21:01 被阅读0次

在做鼠标移入,移除操作是有俩种方式

  • mouseover mouseout 移入/移出

    子级会因为冒泡而影响父级的鼠标移入移出操作

  • onmouseenter onmouseout 移入/移出(子级不会影响父级)

  • 淘宝放大镜实例:

    <!DOCTYPE HTML>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>无标题文档</title>
        <style>
            #div1 {
                width: 180px;
                height: 180px;
                overflow: hidden;
                position: relative;
            }
    
            #div1 span {
                width: 100px;
                height: 100px;
                background: yellow;
                opacity: 0.5;
                filter: alpha(opacity=50);
                position: absolute;
                left: 0;
                top: 0;
                display: none;
            }
    
            #mark {
                width: 180px;
                height: 180px;
                background: red;
                position: absolute;
                left: 0;
                top: 0;
                opacity: 0;
                filter: alpha(opacity=0);
            }
    
            #div2 {
                width: 500px;
                height: 500px;
                position: absolute;
                left: 250px;
                top: 50px;
                overflow: hidden;
            }
    
            #div2 img {
                position: absolute;
                left: 0;
                top: 0;
            }
        </style>
        <script>
            window.onload = function () {
                var oDiv = document.getElementById('div1');
                var oSpan = oDiv.getElementsByTagName('span')[0];
    
                var oDiv2 = document.getElementById('div2');
                var img2 = oDiv2.getElementsByTagName('img')[0];
    
                oDiv.onmouseover = function () {
                    oSpan.style.display = 'block';
                };
    
                oDiv.onmouseout = function () {
                    oSpan.style.display = 'none';
                };
    
                oDiv.onmousemove = function (ev) {
                    var ev = ev || window.event;
    
                    var L = ev.clientX - oDiv.offsetLeft - oSpan.offsetWidth / 2;
                    var T = ev.clientY - oDiv.offsetTop - oSpan.offsetHeight / 2;
    
                    if (L < 0) {
                        L = 0;
                    }
                    else if (L > oDiv.offsetWidth - oSpan.offsetWidth) {
                        L = oDiv.offsetWidth - oSpan.offsetWidth;
                    }
    
                    if (T < 0) {
                        T = 0;
                    }
                    else if (T > oDiv.offsetHeight - oSpan.offsetHeight) {
                        T = oDiv.offsetHeight - oSpan.offsetHeight;
                    }
    
                    oSpan.style.left = L + 'px';
                    oSpan.style.top = T + 'px';
    
                    var scaleX = L / (oDiv.offsetWidth - oSpan.offsetWidth);
                    var scaleY = T / (oDiv.offsetHeight - oSpan.offsetHeight);
    
                    img2.style.left = -scaleX * (img2.offsetWidth - oDiv2.offsetWidth) + 'px';
                    img2.style.top = -scaleY * (img2.offsetHeight - oDiv2.offsetHeight) + 'px';
    
                };
    
            };
        </script>
    </head>
    
    <body>
    <div id="div1">
        [站外图片上传中……(2)]
        <span></span>
        <div id="mark"></div>
    </div>
    <div id="div2">
        [站外图片上传中……(3)]
    </div>
    </body>
    </html>

相关文章

  • 鼠标移动事件,子级因为冒泡影响父级

    在做鼠标移入,移除操作是有俩种方式 mouseover mouseout 移入/移出子级会因为冒泡而影响父级的鼠标...

  • JS-事件捕获和冒泡

    一、事件捕获:事件传递的顺序 (父级到子级)二、事件冒泡:事件处理的顺序 (默认:子级到父级)三、取消冒泡 就...

  • 事件代理原理

    事件代理原理是通过事件冒泡,通过绑定父级对象事件,监听包括父级在内的子级事件,正是依靠事件冒泡原理,子级上事件可以...

  • Js-事件

    一.事件的两种绑定方式 code: 二.冒泡和默认事件 冒泡: 子级父级都有点击事件时,子级区域点击,子级响应事件...

  • 前端JS基础八(事件)

    事件 通用事件绑定 事件冒泡 在父级 div 中定义的事件,会在子级的事件执行之后冒泡上来执行 阻止事件冒泡 e....

  • 01、JavaScript基础

    请说明什么是事件冒泡和事件捕获答:(1)事件冒泡:父级和子级拥有相同的事件,同时触发事件的话,事件会从子级向上传递...

  • 冒泡事件和捕获事件

    什么是冒泡事件,什么是捕获事件 冒泡事件:从最具体的事件一直延伸到不具体的事件,(从自己到父级再到父级的父级) ...

  • js事件监听 事件冒泡 和css3新增

    事件监听:事件捕获 目标阶段 冒泡阶段 事件冒泡:当使用事件冒泡时,子元素先触发,父级元素后触发。 //阻止事件冒...

  • 事件委托

    事件委托是通过事件冒泡的原理,利用父级给子级添加事件。事件委托的好处是不需要去遍历元素的子节点,只需要给父节点添加...

  • 多级菜单增删改

    问题1:出现事件冒泡,父级元素的点击事件传递给了子元素。 解决方法:阻止事件冒泡 方法一:function(e){...

网友评论

      本文标题:鼠标移动事件,子级因为冒泡影响父级

      本文链接:https://www.haomeiwen.com/subject/xbohmttx.html