Отключить в браузерах вертикальные и горизонтальные полосы прокрутки

Можно ли отключить вертикальные и горизонтальные полосы прокрутки в браузерах с помощью jQuery или javascript?

Я думаю, что в некоторых ситуациях, особенно если вы хотите переключаться между прокруткой и без прокрутки, это решение более предпочтительно: stackoverflow.com/questions/8701754/…

Yousef Salimpour 26.08.2014 14:20

Более полный ответ на этот вопрос вы можете найти здесь stackoverflow.com/a/25561646/1922144

davidcondrey 26.09.2014 01:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
117
2
273 458
11

Ответы 11

Попробуйте CSS

<body style = "overflow: hidden">

Для совместимости с браузером я бы также добавил этот стиль в тег HTML: html, body {overflow: hidden;}

Ady 28.10.2008 13:21

Если вам нужна возможность динамически скрывать и показывать полосы прокрутки, вы можете использовать

$("body").css("overflow", "hidden");

и

$("body").css("overflow", "auto");

где-то в вашем коде.

Скрытое переполнение не всегда работает в IE. См. Ответ AnthonyWJones ниже.

Tiago A. 02.01.2013 20:41
oveflow: hidden ничего не помешает на смартфонах.
dvlden 23.10.2014 04:24

В Chrome это отключает полосу прокрутки, не скрывая ее (она все еще там и все еще меняет размер всего остального, но теперь она неактивна)

taltamir 20.09.2017 21:17

Пока что у нас есть overflow: hidden на теле. Однако IE не всегда соблюдает это, и вам нужно также поставить scroll = "no" в элемент body и / или поместить overflow: hidden также в элемент html.

Вы можете пойти дальше, когда вам нужно «взять под контроль» порт просмотра, вы можете сделать это: -

<style>
 body {width:100%; height:100%; overflow:hidden; margin:0; }
 html {width:100%; height:100%; overflow:hidden; }
</style>

Элемент, которому предоставлена ​​высота 100% в теле, имеет полную высоту области просмотра окна, а элемент позиционируется абсолютно с использованием bottom: nnPX будет установлен на nn пикселей выше нижнего края окна и т. д.

Разве ',' не должно быть ';' в теле css?

paynestrike 18.05.2015 09:57

Если вам также нужна поддержка Internet Explorer 6, просто переполните html

$("html").css("overflow", "hidden");

и

$("html").css("overflow", "auto");

Попробуйте CSS.

Если вы хотите удалить Horizontal

overflow-x: hidden;

И если вы хотите удалить Vertical

overflow-y: hidden;
function reloadScrollBars() {
    document.documentElement.style.overflow = 'auto';  // firefox, chrome
    document.body.scroll = "yes"; // ie only
}

function unloadScrollBars() {
    document.documentElement.style.overflow = 'hidden';  // firefox, chrome
    document.body.scroll = "no"; // ie only
}

Два положительных голоса - это очень мало для того, чтобы быть единственным чистым ответом на javascript.

john-jones 16.11.2012 15:03

@HermannIngjaldsson: Видя, что OP запросил решение JavaScript или jQuery и принял решение jQuery 4 года назад, это имеет смысл. Я не говорю, что ответ плохой, просто констатирую очевидное о более низких голосах. +1 от меня все равно.

Nope 17.10.2013 19:26

это единственное решение, которое сработало для меня, поскольку скрытое переполнение тела не атакует весь документ, это правильное решение этой проблемы! Большое спасибо, вы сэкономили мне много времени!

Adnane.T 09.10.2014 23:31

Это отличное решение, заслуживающее поддержки. Это также решает проблему с фиксированным CSS, когда страница будет прокручиваться вверх.

haipham23 26.01.2017 17:40

В IE есть ошибка с полосами прокрутки. Поэтому, если вы хотите использовать одно из двух, вы должны включить следующее, чтобы скрыть горизонтальную полосу прокрутки:

overflow-x: hidden;
overflow-y:scroll;

и скрыть вертикаль:

overflow-y: hidden;
overflow-x: scroll;

Поскольку Firefox имеет сокращенную клавишу со стрелкой, вы, вероятно, захотите поместить вокруг него <div> в стиле CSS: overflow:hidden;.

В современных версиях IE (IE10 и выше) полосы прокрутки можно скрыть с помощью -ms-overflow-style недвижимость.

html {
     -ms-overflow-style: none;
}

В Chrome полосы прокрутки можно стилизовать:

::-webkit-scrollbar {
    display: none;
}

Это очень полезно, если вы хотите использовать прокрутку тела по умолчанию в веб-приложении, которая значительно быстрее, чем overflow-y: scroll.

только это сработало для меня из всех ответов :) спасибо!

Gediminas 07.12.2016 17:36

(Пока не могу комментировать, но хотел бы этим поделиться):

Код Lyncee работал у меня в настольном браузере. Однако на iPad (Chrome, iOS 9) он вылетал из приложения. Чтобы исправить это, я изменил

document.documentElement.style.overflow = ...

к

document.body.style.overflow = ...

который решил мою проблему.

Используя JQuery, вы можете отключить полосу прокрутки с помощью этого кода:

$('body').on({
    'mousewheel': function(e) {
        if (e.target.id == 'el') return;
        e.preventDefault();
        e.stopPropagation();
     }
});

Также вы можете снова включить его с помощью этого кода:

 $('body').unbind('mousewheel');

Другие вопросы по теме