@cjkfdt

Как сделать, чтобы функция сработала лишь раз при прокрутке страницы?

Здравствуйте. Имеется вот такой код:
$(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 то тоже чтобы срабатывала один раз? Заранее спасибо.
  • Вопрос задан
  • 352 просмотра
Пригласить эксперта
Ответы на вопрос 1
@pestunov
Можно добавить глобальный флаг, а внутри функции проверить с помощью 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
}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы