Hejka.
Wymyśliłem coś takiego:
window.addEventListener('scroll', runAnimationRun);
var h = (Math.max(document.documentElement.clientHeight, window.innerHeight || 0)/1.5);
function runAnimationRun(){
if (document.body.scrollTop > h || document.documentElement.scrollTop > h) {
addShadows();
showSpeechBubbles();
setInterval(showSpeechBubbles, 25000);
window.removeEventListener('scroll', runAnimationRun);
}
}
window.addEventListener('scroll', function showMeTop(){
if (document.body.scrollTop > h || document.documentElement.scrollTop > h) {
showButtonUp();
window.removeEventListener('scroll', runAnimationRun);
}
else {
hideButtonUp();
}
});
Podświadomie czuję, że takie rozwiązanie jest na bakier wydajnością, ale nie wiem jak do tego inaczej podejść.
Jeden addEventListener('scroll') odpowiada za jednorazowe uruchomienie animacji i wyłączenie się. Drugi włącza i wyłącza button scroll up na odpowiedniej wysokości strony.