缓慢动画原理

<style>

    div {

        position: absolute;

        left: 0;

        top: 300px;

        width: 100px;

        height: 100px;

        background-color: pink;

    }

</style>

<body>

    <input type="button" value="400" id="jin">

    <input type="button" value="800" id="yuan">

    <div></div>

    <script>

        var jin = document.getElementById('jin')

        var yuan = document.getElementById('yuan')

        var div = document.querySelector('div')

        function fun(obj, jl, huiDiao) {

            clearTimeout(obj.timer);

            obj.timer = setInterval(function () {

                var yd = (jl - obj.offsetLeft) / 10

                yd = yd > 0 ? Math.ceil(yd) : Math.floor(yd)

             

            if(obj.offsetLeft==jl){

                clearTimeout(obj.timer);

                if(huiDiao){

                    huiDiao();

                }

            }

            div.style.left=obj.offsetLeft+yd+'px'

         

            }, 15)

        }

        jin.addEventListener('click',function(){

            fun(div,400,)

        })

        yuan.addEventListener('click',function(){

            fun(div,800,function(){

                div.style.backgroundColor="red"

            })

        })

    </script>

</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值