JavaScript--缓冲动画

本文深入探讨了JavaScript如何创建平滑的缓冲动画效果,包括使用requestAnimationFrame、缓动函数和时间戳来控制动画流畅性。通过实例代码,详细解释了如何实现从一个位置平滑过渡到另一个位置的动画过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<style>
    div {
       width: 100px;
       height: 100px;
       background: pink;
      position: absolute;
     }
</style>

 <button>action</button>
 <div></div>
 <script>
        //匀速运动 公式
        //  新的位置 = 当前位置+步长
        //缓冲动画
        //从快到慢 (减速运动)
        //步长越变越少
        // 步长 = (目标位置-当前位置)/10
        var btn = document.querySelector('button') //接收按钮
        var box = document.querySelector('div') //获取div
            //给按钮添加点击事件
        btn.onclick = function() {
            //在点击事件中写定时器
            let timer = setInterval(() => {
                //在定时器方法里面控制div的移动
                //获取当前div的偏移量
                var currentX = box.offsetLeft
                    //获取步长
                var step = (300 - currentX) / 10
                    //如果当前步长是小于0就是向下取整  如果大于0就向上取整
                step = step > 0 ? Math.ceil(step) : Math.floor(step)
                    //控制div的移动
                box.style.left = currentX + step + 'px'
                    //到达目标位置后清除定时器
                if (Math.abs(300 - currentX) <= Math.abs(step)) {
                    clearInterval(timer)
                }
            }, 40)
        }
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值