Как остановить прокрутку страницы?

Существует несколько способов остановить прокрутку страницы в 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-кода, и пользователь всегда может вручную прокрутить страницу, используя другие способы, такие как кнопка прокрутки на мыши или жесты касания.