requestAnimationFrame

var id = 0
function sc(time){

    if(document.body.scrollTop > $('#xx').offsetTop) 
    {
        requestAnimationFrame(sc)
        document.body.scrollTop -= 8
    }    
    else 
        cancelAnimationFrame(id)
}


var $ = function(selecor){
    return document.querySelector(selecor)
}

function start(){
    id = requestAnimationFrame(sc)
}

start()

浏览器会基于当前页面是否可见、CPU的负荷情况等来自行决定最佳的帧速率,从而更合理地使用CPU.

效果就是动画更平滑,而不是很突然.

默认只调用一次,如果要连续的动画,要用递归的方式.

posted @ 2017-05-08 20:50  JonasYu  阅读(151)  评论(0编辑  收藏  举报