Подтвердить что ты не робот

Полностью отключить прокрутку веб-страницы

Я хочу отключить прокрутку для моей веб-страницы, но полностью, а не просто отключить полосы прокрутки, поэтому

overflow: hidden

не будет работать.

Также это обходное решение не применяется на компьютерах Mac из-за "мягкой прокрутки" по краям. Он покажет ужасную дрожащую анимацию:

window.onscroll = function () {
window.scrollTo(0,0);
}

Есть ли какой-либо другой способ полностью отключить прокрутку?

4b9b3361

Ответ 1

Предполагая, что упрощенный код HTML:

<html><body><div class=wrap>content...</div></body></html>

Установите оба тела, html в высоту: 100%;

body, html {height:100%;}

Поместите div внутри тела и установите его на всю высоту тела:

div.wrap {height:100%; overflow:hidden;}

Это предотвратит прокрутку окна от странных способов, например, нажатие колесика мыши и перемещение, использование якорей и т.д.

Чтобы удалить панель прокрутки (визуально), вы также должны добавить:

body {overflow: hidden; }

Чтобы отключить прокрутку с помощью клавиш со стрелками на клавиатуре:

window.addEventListener("keydown", function(e) {
    // space, page up, page down and arrow keys:
    if([32, 33, 34, 37, 38, 39, 40].indexOf(e.keyCode) > -1) {
        e.preventDefault();
    }
}, false);