2016-08-19 5 views
0

Es ist einfach CodeChrome feuert Scroll-Ereignis

window.onload = function() { 
    window.addEventListener('scroll', function() { 
     alert('asd'); 
    }); 
}; 

, wenn Sie Seite gescrollt aufzufrischen, in firefox - Sie werden nicht wachsam sehen, aber in Chrom MANCHMAL, es löst Alarm, manchmal ist es nicht. Gleiche Seite, gleicher Bildlauf, nur mehrere Aktualisierungen.

Frage ist, wie zu vermeiden, Scroll-Ereignis beim Laden in Chrom nach der Aktualisierung auszulösen?

Problem ist, DOMContentLoaded kann dies lösen, aber ich habe Blockanimation mit Koordinaten auf Bildlauf (scroll-then-fixed), und mit DOMContentLoaded Koordinaten sind falsch.

p.s. Nein $ @ # $ jQuery erlaubt.

S.2.

if ('scrollRestoration' in history) { 
     history.scrollRestoration = 'manual'; 
    } 

ist nicht fix, aber Workaround auch.

Antwort

1

Sie konnten die Anfangsrolle mit einer Flagge verfolgen und erkennen, ob die Seite scrollen nicht wirklich:

window.onload = function() { 
    var isFirstTime = true; 
    window.addEventListener('scroll', function() { 
     if (isFirstTime) { 
      isFirstTime = false; 
      if (window.scrollY === 0) return; 
     } 
     alert('asd'); 
    }); 
}; 
1

unten Versuchen Code

<script> 
window.onscroll = function() { 
console.log('Scrolling'); 

}; 

</script> 
1

Verwendung dieses:

var tFn = function(){ 
    alert(); 
} 
document.onreadystatechange = function(){ 
    if (document.readyState == ("complete")) { 
     setTimeout(function(){ 
      window.onscroll = tFn; 
     },100); 
    } 
}