¿Es posible deshabilitar las barras de desplazamiento verticales y horizontales de los navegadores usando jQuery o javascript?
¿Es posible deshabilitar las barras de desplazamiento verticales y horizontales de los navegadores usando jQuery o javascript?
Respuestas:
En caso de que necesite la posibilidad de ocultar y mostrar barras de desplazamiento dinámicamente, puede usar
$("body").css("overflow", "hidden");
y
$("body").css("overflow", "auto");
en algún lugar de su código.
oveflow: hidden
no evitará nada en los teléfonos inteligentes.
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
}
Hasta ahora tenemos desbordamiento: oculto en el cuerpo. Sin embargo, IE no siempre respeta eso y debe poner scroll = "no" en el elemento del cuerpo y / o colocar overflow: hidden en el elemento html también.
Puede llevar esto más lejos cuando necesite 'tomar el control' del puerto de visualización, puede hacer esto: -
<style>
body {width:100%; height:100%; overflow:hidden; margin:0; }
html {width:100%; height:100%; overflow:hidden; }
</style>
Un elemento con una altura del 100% en el cuerpo tiene la altura completa de la ventana de visualización, y el elemento se coloca absolutamente usando bottom: nnPX se establecerá nn píxeles por encima del borde inferior de la ventana, etc.
En las versiones modernas de IE (IE10 y superior), las barras de desplazamiento se pueden ocultar mediante la -ms-overflow-style
propiedad .
html {
-ms-overflow-style: none;
}
En Chrome, las barras de desplazamiento se pueden diseñar:
::-webkit-scrollbar {
display: none;
}
Esto es muy útil si desea utilizar el desplazamiento corporal "predeterminado" en una aplicación web, que es considerablemente más rápido que overflow-y: scroll
.
IE tiene algún error con las barras de desplazamiento. Entonces, si desea alguno de los dos, debe incluir lo siguiente para ocultar la barra de desplazamiento horizontal:
overflow-x: hidden;
overflow-y:scroll;
y ocultar vertical:
overflow-y: hidden;
overflow-x: scroll;
(No puedo comentar todavía, pero quería compartir esto):
El código de Lyncee funcionó para mí en el navegador de escritorio. Sin embargo, en iPad (Chrome, iOS 9), bloqueó la aplicación. Para arreglarlo, cambié
document.documentElement.style.overflow = ...
a
document.body.style.overflow = ...
que resolvió mi problema.
Usando JQuery puede deshabilitar la barra de desplazamiento con este código:
$('body').on({
'mousewheel': function(e) {
if (e.target.id == 'el') return;
e.preventDefault();
e.stopPropagation();
}
});
También puedes habilitarlo nuevamente con este código:
$('body').unbind('mousewheel');