javascript - window.onscroll无法刷新scrollTop的值?
迷茫
迷茫 2017-04-11 12:07:32
[JavaScript讨论组]
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的值?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
ringa_lee
  window.onload = function () {
                window.scroll(0, 100);
            }
            window.onscroll = function () {
                var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
                console.log(scrollTop);
            }
黄舟
window.onload=function(){
        window.scrollTo(0,100);
    };
怪我咯

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号