Как сделать, чтобы функция сработала лишь раз при прокрутке страницы?
Здравствуйте. Имеется вот такой код:
$(document).on('scroll', function () {
var position = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;
var block_position = $('div').offset().top;
if ((position + 600) > block_position) {
//Тут код
}
});
Как сделать так, чтобы при скроле до div эта фнукция сработала лишь один раз? Также если обновить страницу ниже div'a то тоже чтобы срабатывала один раз? Заранее спасибо.
Можно добавить глобальный флаг, а внутри функции проверить с помощью if был ли вызов функции. Если был, то ничего не делать. Есть не был, то перевернуть флаг и вызвать функцию. wasFunctionInvoked = false;
$(document).on('scroll', function () { if (!wasFunctionInvoked) {
wasFunctionInvoked = true;
var position = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;
var block_position = $('div').offset().top;
if ((position + 600) > block_position) {
//Тут код
}
} else { // doNothing
}
});