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.