Вимкнути прокручування тіла


137

Я б хотів повністю відключити прокрутку по HTML body. Я спробував такі варіанти:

  • overflow: hidden; (не працює, не відключила прокрутку, вона просто приховала смугу прокрутки)

  • position: fixed; (це спрацювало, але воно прокрутилося повністю до верху, що неприпустимо для цієї конкретної програми)

Мені не вдалося знайти альтернативи цим двом варіантам, чи є ще?


3
для якого елемента ви застосували переповнення: приховано?
Саджад Карутефат

Чого саме ви намагаєтеся досягти тут? Яка ваша кінцева мета?
jbutler483

2
Показ відповідного коду полегшить вам допомогу.
Елегантний вигляд

1
переповнення: приховано; це шлях. Якщо це не працює, у вас є якась інша проблема у вашому css. Спробуйте html, body {overflow: hidden;} якщо це не працює, спробуйте * {overflow: hidden;} і спробуйте з’ясувати, що не так
Jonas Grumann

Відповіді:


245

Встановити heightта overflow:

html, body {margin: 0; height: 100%; overflow: hidden}

http://jsfiddle.net/q99hvawt/


3
забув про "html," раніше "body.

2
Не працює на iOS, коли у вас є елемент накладання, який має фіксовану позицію.
неQ

1
Ви можете просто додати "переповнення": "приховано", і воно буде добре працювати.
JPG

Це рішення не одразу спрацювало для мене, але після перевірки десь було відмінено "запас". Встановлення "поля" цього елемента: 0; " зробив трюк.
joaoprib

19

HTML css працює добре, якщо тег body нічого не робить, ви також можете написати

<body scroll="no" style="overflow: hidden">

У цьому випадку перебіг повинен бути на тезі тіла, його легше контролювати, але іноді призводить до головних болів.


21

@ mbomb007 Чи можете ви прокоментуйте помилку, пов’язану з HTML5?
Етан

5
@Ethan scrollАтрибут недійсний у <body>тегу. Він не вказаний як дійсний на будь-яких специфікаціях, які я можу знайти. w3schools ; MDN ; Quackit
mbomb007

14

Ця публікація була корисною, але просто хотіла поділитися невеликою альтернативою, яка може допомогти іншим:

Встановлення max-heightзамість heightтакож робить трюк. У моєму випадку я відключаю прокрутку на основі перемикання класу. Встановлення, .someContainer {height: 100%; overflow: hidden;}коли висота контейнера менша, ніж у вікні перегляду, розтягне контейнер, що було б не тим, що ви хотіли б. Налаштування max-heightоблікових записів для цього, але якщо висота контейнера більша за вікно перегляду, коли вміст змінюється, все ще вимикає прокрутку.


це врятувало мені день для веб-переглядачів без небажаного побічного ефекту прокрутки-зверху. але не працювали на мобільних браузерах (iphone5s та android).
боб

5

Для цього додайте 2 <body>елемента CSS на елемент.

body {
   height: 100%;
   overflow-y: hidden;
}

У наші дні існує багато веб-сайтів новин, які вимагають від користувачів створення облікового запису. Зазвичай вони дають повний доступ до сторінки приблизно на секунду, а потім показують спливаюче вікно і не дозволяють користувачам прокручуватися вниз.

Телеграф


це приховує смугу прокрутки. Однак питання спеціально вимагає альтернативи приховуванню смуги прокрутки
DataGeek

@DataGeek, це не тільки приховує смугу прокрутки, але й зупиняє можливість прокрутки вниз. І як я розумію, саме про це просили. тобто не просто приховувати його, але й унеможливлювати прокручування вниз.
bvdb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.