requestAnimationFrame()
方法告诉浏览器要执行动画,浏览器通过最优方式确定重绘的时序。
语法
接收一个回调函数为参数,该回调函数有一个时间参数,它表示 requestAnimationFrame()
开始去执行回调函数的时刻。
返回值是一个 ID 标识,类似 setTimeout
和 setInterval
的返回值,可以通过传递给 cancelAnimationFrame()
以取消回调函数。
基本用法
递归调用
<div class="box"></div>
.box {
width: 100px;
height: 100px;
background-color: red;
position: absolute;
}
const box = document.querySelector('.box')
let n = 10
let time = null
function anim(time) {
box.style.left = n + 'px'
n += 10
if (time <= 500) {
requestAnimationFrame(anim)
}
}
requestAnimationFrame(anim)