为了账号安全,请及时绑定邮箱和手机立即绑定

请问cancelAnimationFrame的使用方法

请问cancelAnimationFrame的使用方法

慕桂英3389331 2018-12-21 19:14:53
window.requestAnimFrame = (function(){    return  window.requestAnimationFrame       ||        window.webkitRequestAnimationFrame ||        window.mozRequestAnimationFrame    ||        window.oRequestAnimationFrame      ||        window.msRequestAnimationFrame     ||        function( callback ){            window.setTimeout(callback, 1000 / 60);        };})();function backTop(){    var scrollingElement = document.scrollingElement || document.documentElement || document.body;    scrollingElement.scrollTop = scrollingElement.scrollTop - 10;    console.log(scrollingElement.scrollTop == 0 )    if( scrollingElement.scrollTop == 0 ){ cancelAnimationFrame(aaa) }    requestAnimFrame(backTop)};var aaa;function aa() {    aaa = requestAnimFrame(backTop)}目前开始了不知道是怎么才能停下的。。
查看完整描述

1 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

Edit:
经测试,改成这样就行了。
scrollingElement是scrollTop值的副本,直接修改它的值是不会影响scrollTop的。

var aaa;

function backTop(){

    var scrollingElement =  document.documentElement.scrollTop || document.body.scrollTop;

    

    document.body.scrollTop = scrollingElement - 10;

    

    if( scrollingElement === 0 ) {

        cancelAnimationFrame(aaa);

    } else {

        aaa = requestAnimFrame(backTop)

    }

};


查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信