requestAnimationFrame (定时&&动画)

本文深入探讨了HTML5新增的requestAnimationFrame定时器,详细介绍了其工作原理、优势与局限性,并通过实例展示了如何使用此API实现流畅的动画效果。与setTimeout相比,requestAnimationFrame在页面不可见时会暂停渲染,更高效地配合屏幕刷新率执行动画更新。

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

requestAnimationFrame是HTML5新增的定时器,不需要设置时间间隔

cancelAnimationFrame方法用于取消定时器

requestAnimationFrame(调用函数)

优点:
1\性能好,页面处于不可见或不可用状态requestAnimationFrame会暂停渲染,setTimeout不会.
1\它能够保证我们的动画函数的每一次调用都对应着一次屏幕重绘
3\函数节流,requestAnimationFrame可保证每个刷新间隔内,函数只被执行一次
缺点:
1\兼容问题
2\

 <div id="test" style="width:1px;height:17px;background:#0f0;">0%</div>
   <input type="button" value="Run" id="run"/>    

<script type="text/javascript">
        var ele = document.getElementById("test");
        var progress = 0;
        
        function step(timestamp) {
            progress += 1;
            ele.style.width = progress + "%";
            ele.innerHTML=progress + "%";
            if (progress < 100) {
                requestAnimationFrame(step);
            }
        }
        requestAnimationFrame(step);
</scirpt>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值