360开机小助手js循环效果出现的问题

本文探讨了如何使用JavaScript实现一个点击按钮后元素进行360度下移右移的循环动画效果。作者遇到的问题在于不确定在onclick事件中嵌套addEventListener是否会重复注册行为,希望得到关于代码实现和事件监听原理的解答。文中附带相关图片以辅助说明问题。
摘要由CSDN通过智能技术生成

360开机小助手js循环效果


这里我想用这个案例探讨一下onclick和addEventListener嵌套问题,下面是案例的整体代码

<style>
        .box {
            width: 322px;
            position: fixed;
            bottom: 0;
            right: 0;
            overflow: hidden;
        }

        span {
            position: absolute;
            top: 0;
            right: 0;
            width: 30px;
            height: 20px;
            cursor: pointer;
        }

        .bd {
            height: 105px;
            transition: all 2s;
        }

        .box {
            transition: all 0.6s;
        }
    </style>
    <body>
    <div class="box" id="box">
        <span id="closeButton"></span>
        <div class="hd" id="headPart"><img src="images/t.jpg" alt=""></div>
        <div class="bd" id="bottomPart"><img src="images/b.jpg" alt=""></div>
    </div>
</body>
<script>
    window.onload = function () {
        setInterval(function () {
            var btn = document.querySelector('#closeButton')
            var bottomPart = document.querySelector('#bottomPart')
            var box = document.querySelector('#box')

            btn.onclick = function () {
                bottomPart.style.height = 0
            //     bottomPart.addEventListener('transitionend', function () {
            //     box.style.width = 0;
            // })
            console.log(1);
            
            }
            bottomPart.addEventListener('transitionend', function () {
                box.style.width = 0;
                console.log(2);
                
            })
            console.log(3);
            
            bottomPart.style.height = 105+'px'
            box.style.width = 322+'px';
        }, 10000)
    }
</script>

我想实现点击按钮,360下移再往右边移出,然后再恢复原来的样子,再点击按钮反复循环,如果addEventListener嵌套在onclick时间里面是否会重复addEventListener注册的行为,具体原理是什么,有没有大神能解析一下我这个代码,图片我放到下面

图片: 在这里插入图片描述
一共两张图片在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值