有简单的代码
window.onload = function () {
window.addEventListener('scroll', function () {
alert('asd');
});
};
当您刷新滚动页面时,在Firefox中 - 您不会看到警报,但在Chrome有时,它会触发警报,有时则不会。相同页面,相同滚动,只需多次刷新。
问题是如何在刷新后避免在chrome中加载时触发滚动事件?
问题是,DOMContentLoaded可以解决这个问题,但是我在滚动时使用坐标进行块动画(滚动然后修复),并且DOMContentLoaded坐标是错误的。
P.S。不允许$ @#$ jQuery。
p.s.2。
if ('scrollRestoration' in history) {
history.scrollRestoration = 'manual';
}
不是修复,但也是解决方法。
答案 0 :(得分:1)
您可以使用标记跟踪初始滚动并检测页面是否实际滚动:
window.onload = function () {
var isFirstTime = true;
window.addEventListener('scroll', function () {
if (isFirstTime) {
isFirstTime = false;
if (window.scrollY === 0) return;
}
alert('asd');
});
};
答案 1 :(得分:1)
尝试以下代码
<script>
window.onscroll = function() {
console.log('Scrolling');
};
</script>
答案 2 :(得分:1)
使用它:
var tFn = function (){
alert();
}
document.onreadystatechange = function (){
if ( document.readyState == ("complete") ) {
setTimeout(function(){
window.onscroll = tFn;
},100);
}
}