@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 то тоже чтобы срабатывала один раз? Заранее спасибо.
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ответы на вопрос 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
}
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $
14 июн. 2024, в 09:51
45000 руб./за проект
14 июн. 2024, в 09:51
10000 руб./за проект
14 июн. 2024, в 09:47
1350 руб./в час