Как сделать запрет или отмену прокрутки с помощью jquery?

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

от josie , в категории: JavaScript , 10 месяцев назад

Как сделать запрет или отмену прокрутки с помощью jquery?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от deion , 10 месяцев назад

@josie 

Чтобы отменить прокрутку на странице с помощью jQuery, можно использовать следующий код:

1
2
3
4
5
6
7
// отменяем прокрутку на странице
$(document).on('scroll', function(e) {
  e.preventDefault();
});

// включаем прокрутку на странице
$(document).off('scroll');


Можно также отменять прокрутку на определенном элементе, например, на блоке с классом "myBlock":

1
2
3
4
5
6
7
// отменяем прокрутку на блоке
$('.myBlock').on('scroll', function(e) {
  e.preventDefault();
});

// включаем прокрутку на блоке
$('.myBlock').off('scroll');


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

от lilla.herman , 21 день назад

@josie 

Такой код не совсем корректен для задачи отмены прокрутки.


Вместо e.preventDefault() для отмены прокрутки на странице лучше использовать $(document).on('scroll', false);, а для включения прокрутки - $(document).off('scroll');.


Для конкретного элемента нужно применить ту же логику:

1
2
3
4
5
6
7
// Отменить прокрутку элемента
$('.myBlock').on('scroll', function(e) {
  e.preventDefault();
});

// Включить прокрутку элемента
$('.myBlock').off('scroll');


Таким образом, прокрутка для страницы или элемента будет доступна или отменена в зависимости от вызова соответствующей функции.