37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
|
(function() {
|
||
|
var intervalObj = null;
|
||
|
var retry = 0;
|
||
|
var clickHandler = function() {
|
||
|
console.log("Clicked; stopping autoscroll");
|
||
|
clearInterval(intervalObj);
|
||
|
document.body.removeEventListener("click", clickHandler);
|
||
|
}
|
||
|
function scrollDown() {
|
||
|
var scrollHeight = document.body.scrollHeight,
|
||
|
scrollTop = document.body.scrollTop,
|
||
|
innerHeight = window.innerHeight,
|
||
|
difference = (scrollHeight - scrollTop) - innerHeight
|
||
|
|
||
|
if (difference > 0) {
|
||
|
window.scrollBy(0, difference);
|
||
|
if (retry > 0) {
|
||
|
retry = 0;
|
||
|
}
|
||
|
console.log("scrolling down more");
|
||
|
} else {
|
||
|
if (retry >= 3) {
|
||
|
console.log("reached bottom of page; stopping");
|
||
|
clearInterval(intervalObj);
|
||
|
document.body.removeEventListener("click", clickHandler);
|
||
|
} else {
|
||
|
console.log("[apparenty] hit bottom of page; retrying: " + (retry + 1));
|
||
|
retry++;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
document.body.addEventListener("click", clickHandler);
|
||
|
|
||
|
intervalObj = setInterval(scrollDown, 1000);
|
||
|
|
||
|
})()
|