Czy można wyłączyć pionowe i poziome paski przewijania przeglądarki za pomocą jQuery lub javascript?
Czy można wyłączyć pionowe i poziome paski przewijania przeglądarki za pomocą jQuery lub javascript?
Odpowiedzi:
Jeśli potrzebujesz możliwości dynamicznego ukrywania i pokazywania pasków przewijania, możesz użyć
$("body").css("overflow", "hidden");
i
$("body").css("overflow", "auto");
gdzieś w swoim kodzie.
oveflow: hiddennic nie zapobiegnie na smartfonach.
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
}
Póki co mamy przelew: ukryty na korpusie. Jednak IE nie zawsze to honoruje i musisz umieścić scroll = "no" również w elemencie body i / lub wstawić przepełnienie: ukryte również w elemencie html.
Możesz pójść dalej, gdy chcesz przejąć kontrolę nad portem widoku, możesz to zrobić: -
<style>
body {width:100%; height:100%; overflow:hidden; margin:0; }
html {width:100%; height:100%; overflow:hidden; }
</style>
Element o nadanej wysokości 100% w treści ma pełną wysokość okna, a element pozycjonowany absolutnie za pomocą dołu: nnPX zostanie ustawiony nn pikseli nad dolną krawędzią okna itp.
W nowoczesnych wersjach IE (IE10 i nowszych) paski przewijania można ukrywać za pomocą -ms-overflow-stylewłaściwości .
html {
-ms-overflow-style: none;
}
W przeglądarce Chrome paski przewijania można stylizować:
::-webkit-scrollbar {
display: none;
}
Jest to bardzo przydatne, jeśli chcesz użyć „domyślnego” przewijania treści w aplikacji internetowej, które jest znacznie szybsze niż overflow-y: scroll.
IE ma jakiś błąd związany z paskami przewijania. Więc jeśli chcesz jedno z dwóch, musisz uwzględnić następujące elementy, aby ukryć poziomy pasek przewijania:
overflow-x: hidden;
overflow-y:scroll;
i aby ukryć pion:
overflow-y: hidden;
overflow-x: scroll;
(Nie mogę jeszcze komentować, ale chcę to udostępnić):
Kod Lyncee działał dla mnie w przeglądarce na komputerze. Jednak na iPadzie (Chrome, iOS 9) zawiesił aplikację. Aby to naprawić, zmieniłem się
document.documentElement.style.overflow = ...
do
document.body.style.overflow = ...
co rozwiązało mój problem.