Можно ли отключить вертикальную и горизонтальную полосы прокрутки браузеров с помощью jQuery или javascript?
Можно ли отключить вертикальную и горизонтальную полосы прокрутки браузеров с помощью jQuery или javascript?
Ответы:
Если вам нужна возможность динамически скрывать и показывать полосы прокрутки, вы можете использовать
$("body").css("overflow", "hidden");
и
$("body").css("overflow", "auto");
где-то в вашем коде.
oveflow: 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
}
Пока что у нас есть 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 пикселей выше нижнего края окна и т. Д.
В современных версиях IE (IE10 и выше) полосы прокрутки можно скрыть с помощью -ms-overflow-styleсвойства .
html {
-ms-overflow-style: none;
}
В Chrome полосы прокрутки можно стилизовать:
::-webkit-scrollbar {
display: none;
}
Это очень полезно, если вы хотите использовать прокрутку тела по умолчанию в веб-приложении, которая значительно быстрее, чем overflow-y: scroll.
(Пока не могу комментировать, но хотел бы этим поделиться):
Код 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');