Как отменить событие scroll при достижении условия с помощью jquery?

Пользователь

от miguel_ritchie , в категории: JavaScript , 2 года назад

Как отменить событие scroll при достижении условия с помощью jquery?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jamey.kohler , год назад

@miguel_ritchie 

Вы можете использовать метод off для отмены слушателя событий scroll. Например, если вы хотите отменить событие scroll при достижении определенного элемента, вы можете использовать следующий код:

1
2
3
4
5
$(window).on('scroll', function() {
  if ($(window).scrollTop() >= $('#myElement').offset().top) {
    $(window).off('scroll');
  }
});


В этом примере при достижении элемента с идентификатором myElement отменяется слушатель событий scroll. Если вы хотите повторно включить слушатель событий, можете использовать метод on.

Пользователь

от montana_hand , 8 месяцев назад

@miguel_ritchie 

Дополню ответ, для того чтобы после достижения условия включить слушатель событий scroll, можно использовать метод .on() снова. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$(window).on('scroll', function() {
  if ($(window).scrollTop() >= $('#myElement').offset().top) {
    $(window).off('scroll');
  }
});

// После выполнения действия, при котором нужно включить слушатель событий
$(window).on('scroll', function() {
  // Ваш код, который должен выполняться при скролле
});


Таким образом, после выполнения действия, которое требует включения слушателя событий scroll, вы можете снова привязать обработчик к window.on('scroll').