Задать вопрос
@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 то тоже чтобы срабатывала один раз? Заранее спасибо.
  • Вопрос задан
  • 354 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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
}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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