首页 > window.onscroll无法刷新scrollTop的值?

window.onscroll无法刷新scrollTop的值?

window.onscroll = function(){
    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
    console.log(scrollTop);
}
window.onload = function(){
     window.pageYOffset = document.documentElement.scrollTop = document.body.scrollTop =100;
}

window.onload函数的作用是当加载该页面时自动定位到100的位置。
如果没有window.onload函数,onscroll可以正确地随着页面滚动打印出scrollTop的值。但一旦window.onload函数里把100赋值给window.pageYOffset后无论页面怎么滚动scrollTop的值都一直是100不会变,请问定位100位置后怎么做才能随着滚动正常刷新scrollTop的值?


window.onload=function(){
        window.scrollTo(0,100);
    };

  window.onload = function () {
                window.scroll(0, 100);
            }
            window.onscroll = function () {
                var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
                console.log(scrollTop);
            }

解决方案:将pageYOffset放在 或 运算符的最后边即可解决问题。

理由:js的与和或操作属于短路操作,||遇到非0即返回当前数据,遇到0继续执行。你让该值等于100,所以每次返回100

【热门文章】
【热门文章】