Я создал решение на основе событий, основанное на ответе Бьорна Типлинга:
(function(doc){
'use strict';
window.onscroll = function (event) {
if (isEndOfElement(doc.body)){
sendNewEvent('end-of-page-reached');
}
};
function isEndOfElement(element){
//visible height + pixel scrolled = total height
return element.offsetHeight + element.scrollTop >= element.scrollHeight;
}
function sendNewEvent(eventName){
var event = doc.createEvent('Event');
event.initEvent(eventName, true, true);
doc.dispatchEvent(event);
}
}(document));
И вы используете событие, как это:
document.addEventListener('end-of-page-reached', function(){
console.log('you reached the end of the page');
});
Кстати: вам нужно добавить этот CSS для JavaScript, чтобы знать, как долго страница
html, body {
height: 100%;
}
Демо: http://plnkr.co/edit/CCokKfB16iWIMddtWjPC?p=preview