¿Cómo puedo determinar la altura de una barra de desplazamiento horizontal, o el ancho de una barra vertical, en JavaScript?
javascript
scrollbar
glmxndr
fuente
fuente
Respuestas:
Desde el blog de Alexandre Gomes no lo he probado. Avísame si te funciona.
fuente
Usando jQuery, puede acortar la respuesta de Matthew Vines a:
fuente
Este es solo el script que he encontrado, que funciona en los navegadores webkit ... :)
Versión minimizada:
Y debe llamarlo cuando el documento esté listo ... así que
Probado el 28/03/2012 en Windows 7 en las últimas versiones de FF, Chrome, IE y Safari y funciona al 100%.
fuente: http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
fuente
width
será siempre === sin definir la primera vez que la función se llama. En llamadas posteriores a la funciónwidth
ya está configurada, esa verificación solo evita que los cálculos se ejecuten nuevamente innecesariamente.width
, sino que lo recalculará cada vez. Funciona, pero es terriblemente ineficiente. Hazle un favor al mundo y usa la versión correcta en el complemento de Alman.si está buscando una operación simple, simplemente mezcle dom js y jquery,
devuelve el tamaño de la barra de desplazamiento de la página actual. (si es visible o si no, devolverá 0)
fuente
fuente
Para mí, la forma más útil fue
con JavaScript vainilla.
fuente
document.documentElement.clientWidth
.documentElement
expresa más clara y limpiamente la intención de obtener el<html>
elemento.Encontré una solución simple que funciona para los elementos dentro de la página, en lugar de la página en sí:
$('#element')[0].offsetHeight - $('#element')[0].clientHeight
Esto devuelve la altura de la barra de desplazamiento del eje x.
fuente
Del blog de David Walsh :
Me da 17 en mi sitio web, 14 aquí en Stackoverflow.
fuente
Si ya tiene un elemento con barras de desplazamiento, use:
Si no hay horzintscrollbar presente, la función volverá a ejecutar 0
fuente
Puede determinar la
window
barra de desplazamiento de ladocument
siguiente manera usando jquery + javascript:fuente
La forma en
Antiscroll.js
que lo hace en su código es:El código es de aquí: https://github.com/LearnBoost/antiscroll/blob/master/antiscroll.js#L447
fuente
Probado en Chrome, FF, IE8, IE11.
fuente
Esto debería hacer el truco, ¿no?
fuente
Cree un espacio vacío
div
y asegúrese de que esté presente en todas las páginas (es decir, colocándolo en elheader
plantilla).Dale este estilo:
Luego simplemente verifique el tamaño de
#scrollbar-helper
con Javascript:No es necesario calcular nada, ya que esto
div
siempre tendrá elwidth
yheight
delscrollbar
.El único inconveniente es que habrá
div
plantillas vacías en sus plantillas. Pero, por otro lado, sus archivos Javascript estarán más limpios, ya que esto solo requiere 1 o 2 líneas de código.fuente
fuente
La mayoría del navegador usa 15px para el ancho de la barra de desplazamiento
fuente
Con jquery (solo probado en firefox):
Pero en realidad me gusta más la respuesta de @ Steve.
fuente
Esta es una gran respuesta: https://stackoverflow.com/a/986977/5914609
Sin embargo, en mi caso no funcionó. Y pasé horas buscando la solución.
Finalmente, volví al código anterior y agregué! Importante a cada estilo. Y funcionó.
No puedo agregar comentarios debajo de la respuesta original. Así que aquí está la solución:
fuente
Esta decisión de pirateo le dará la oportunidad de encontrar el ancho de desplazamiento del navegador (JavaScript estándar ). Con este ejemplo, puede obtener el ancho de desplazamiento en cualquier elemento, incluidos los elementos que no deberían tener desplazamiento de acuerdo con su concepción de diseño actual:
fuente
Aquí está la solución más concisa y fácil de leer basada en la diferencia de ancho de desplazamiento:
Ver el JSFiddle .
fuente
Ya codificado en mi biblioteca, así que aquí está:
Debo mencionar que jQuery
$(window).width()
también se puede usar en lugar dewindow.document.documentElement.clientWidth
.No funciona si abre las herramientas de desarrollador en Firefox a la derecha, pero lo supera si la ventana de desarrollo se abre en la parte inferior.
window.screen
es compatible quirksmode.org !¡Que te diviertas!
fuente
Parece funcionar, pero ¿tal vez hay una solución más simple que funcione en todos los navegadores?
fuente