Существует несколько способов остановить прокрутку страницы в JavaScript, и выбор определенного способа зависит от ваших потребностей и требований проекта. Рассмотрим несколько вариантов.
1. С помощью свойства CSS overflow: hidden
: Этот метод прост в использовании и предназначен для отключения прокрутки по вертикали. Вы можете применить этот стиль к элементам body
или html
на странице, чтобы запретить прокрутку. Например:
document.body.style.overflow = 'hidden';
2. Используя метод addEventListener
для события wheel
: Этот метод позволяет отслеживать событие прокрутки при помощи колесика мыши и предотвращать его действие с помощью вызова метода preventDefault
. Например:
function preventScroll(event) { event.preventDefault(); } window.addEventListener('wheel', preventScroll, { passive: false });
3. Используя метод addEventListener
для события touchmove
: Этот метод позволяет отслеживать событие прокрутки на сенсорных устройствах и предотвращать его действие с помощью вызова метода preventDefault
. Например:
function preventScroll(event) { event.preventDefault(); } window.addEventListener('touchmove', preventScroll, { passive: false });
4. Используя метод scrollTo
и сохранение текущей позиции прокрутки: Вы также можете сохранить текущую позицию прокрутки страницы с помощью window.scrollY
и затем использовать метод scrollTo
для перемещения страницы обратно на сохраненную позицию. Например:
var scrollY = window.scrollY; window.scrollTo(0, scrollY);
Учтите, что прокрутка может быть заблокирована только в рамках вашего JavaScript-кода, и пользователь всегда может вручную прокрутить страницу, используя другие способы, такие как кнопка прокрутки на мыши или жесты касания.