事件基础三

10 篇文章 0 订阅

事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件冒泡</title>
    <style type="text/css">

        div{padding: 50px;}
        #div1{background: #1836EC;}
        #div2{background: #D43434;}
        #div3{background: #CFF6AE;}

    </style>
</head>
<script>

    /*
        事件冒泡 当一个元素接收到事件的时候,会把他接收到的事件传播给父级,一直到顶层window,这种现象称为事件冒泡或事件冒泡机制

        当一个元素的事件和一个事件函数绑定的时候,元素接收到事件之后就会去执行这个事件函数,当没有和事件函数绑定的时候,也不会影响这个元素接收一个事件 

     */

    window.onload=function (){

        var oDiv1=document.getElementById('div1');
        var oDiv2=document.getElementById('div2');
        var oDiv3=document.getElementById('div3');


        function fn(){


            alert(this.id);
        }


        oDiv1.onclick=fn;//div1
        // oDiv2.onclick=fn;
        // oDiv3.onclick=fn;

    }


</script>
<body>
    <div id="div1">1
        <div id="div2">2
            <div id="div3">3</div>
        </div>
    </div>
</body>
</html>

事件冒泡 下拉菜单应用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件冒泡</title>
    <style type="text/css">

        div{width: 100px;height: 200px;border:1px solid #f00;display: none;}

    </style>
</head>

<script type="text/javascript">

    /*
        阻止冒泡   在接收事件的元素的事件函数中调用   event.cancelBubble=true;
    */

    window.onload=function (){

        oBtn=document.getElementsByTagName('button')[0];
        oDiv=document.getElementsByTagName('div')[0];

        oBtn.onclick=function (ev){

            var ev = ev || event;

            oDiv.style.display='block';

            event.cancelBubble=true;//阻止当前对象的当前事件的冒泡

        }

        document.onclick=function (){

                oDiv.style.display='none';

        }

    }


</script>
<body>

    <button>展开</button>
    <div></div>
    <p>111111</p>
    <p>111111</p>
    <p>111111</p>   
</body>
</html>

事件冒泡 分享菜单应用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件冒泡</title>
    <style type="text/css">
        body{margin:0;}
        #div1{width: 200px;height: 300px;background: #f00;position: absolute;top: 100px;left: -200px;}
        #div2{position: absolute;top: 0;right: -50px;width: 50px;height: 50px;background: #4714E5;color: #fff;}

    </style>
</head>

<script type="text/javascript">

    /*

        阻止冒泡   在接收事件的元素的事件函数中调用   event.cancelBubble=true;

     */

    window.onload=function (){

        var oDiv=document.getElementById('div1');
        /*
            div2接收到鼠标移入事件后,通过冒泡机制传递给div1
        */

        oDiv.onmouseover=function (){

            oDiv.style.left=0;

        }

        oDiv.onmouseout=function (){

            oDiv.style.left=-200+'px';

        }

    }


</script>
<body>

    <div id="div1"><div id="div2">分享到</div></div>


</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值