Uma solução de Javascipt vanilla que descobri muito útil ao implementar coisas que reagem à rolagem de janela.
Defina um método para calcular se o usuário está baixo o suficiente em uma página para o nosso gatilho de ação …
function canNext() {
var offset = 30, // distance from page bottom
pageHeight = Math.max(document.body.scrollHeight, document.body.offsetHeight),
viewportHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0,
scrollHeight = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
// Trigger for scroll, or any thing i'd like to call as user reaches bottom
return pageHeight - viewportHeight - scrollHeight < offset;
}
… e um método que utiliza isto:
function doScroll(){
if(!canNext()) return checkScroll();
// my scroll action....
}
Observe o relógio em vez de rolar para acionar este
function checkScroll(){
setTimeout(doScroll, 100);
)
checkScroll();