Как реализовать бесконечную прокрутку, используя собственный JavaScript?
Как мне реализовать бесконечную / бесконечную прокрутку (например, Facebook) в моем проекте без каких-либо библиотек или структур?
Почти все руководства показывают, как это сделать с jQuery
, React
а также Angular
но я хочу нативную реализацию JavaScript для бесконечной прокрутки.
1 ответ
Решение
Вот бесконечный / бесконечный фрагмент кода с прокруткой, написанный на нативном JavaScript:
window.onscroll = function () {
if (window.scrollY > (document.body.offsetHeight - window.outerHeight)) {
console.log("It's working!");
}
}
Чтобы добавить задержку к выполнению этой функции (если вы отправляете запросы на сервер, это обязательно), вы можете написать это так:
window.onscroll = infiniteScroll;
// This variable is used to remember if the function was executed.
var isExecuted = false;
function infiniteScroll() {
// Inside the "if" statement the "isExecuted" variable is negated to allow initial code execution.
if (window.scrollY > (document.body.offsetHeight - window.outerHeight) && !isExecuted) {
// Set "isExecuted" to "true" to prevent further execution
isExecuted = true;
// Your code goes here
console.log("Working...");
// After 1 second the "isExecuted" will be set to "false" to allow the code inside the "if" statement to be executed again
setTimeout(() => {
isExecuted = false;
}, 1000);
}
}
Я использую это в моем ASP.NET MVC 5
проект, и он работает как шарм.
Примечание. Этот фрагмент кода не работает в некоторых браузерах (я смотрю на вас, IE). window.scrollY
свойство undefined
на IE.