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