Tengo un elemento y necesito su ancho sin (!) Barra de desplazamiento vertical.
Firebug me dice que el ancho del cuerpo es de 1280px.
Cualquiera de estos funciona bien en Firefox:
console.log($('.element').outerWidth() );
console.log($('.element').outerWidth(true) );
$detour = $('.child-of-element').offsetParent();
console.log( $detour.innerWidth() );
Todos devuelven 1263px , que es el valor que estoy buscando.
Sin embargo, todos los demás navegadores me dan 1280px .
¿Existe una forma de varios navegadores para obtener un ancho de pantalla completa sin (!) Barra de desplazamiento vertical?
jquery
cross-browser
width
frecuente
fuente
fuente
width: 100%;
Respuestas:
.prop("clientWidth")
y.prop("scrollWidth")
en JavaScript :
PD:
scrollWidth
tenga en cuenta que para usar de manera confiable su elemento no debe desbordarse horizontalmentejsBin demo
También puede usar,
.innerWidth()
pero esto solo funcionará en elbody
elementofuente
body
desborda o no. si se desborda que lo restrinja.Puede usar javascript vanilla simplemente escribiendo:
También puede usar esto para obtener el ancho del documento de la siguiente manera:
Fuente: MDN
También puede obtener el ancho de la ventana completa, incluida la barra de desplazamiento, de la siguiente manera:
Sin embargo, esto no es compatible con todos los navegadores, por lo que, como alternativa, es posible que desee usar
docWidth
como se indicó anteriormente y agregar el ancho de la barra de desplazamiento .Fuente: MDN
fuente
document.documentElement.clientWidth
Me ayudó más, porque también funciona para la altura (innerHeight
puede ser más pequeño si el cuerpo no llena la página, etc.) y obtiene el valor sin la barra de desplazamiento.Aquí hay algunos ejemplos que asumen que
$element
es unjQuery
elemento:fuente
Prueba esto :
Puede obtener el ancho de la pantalla con y sin barra de desplazamiento usando este código. Aquí, he cambiado el valor de desbordamiento de
body
y obtengo el ancho con y sin barra de desplazamiento.fuente
El lugar más seguro para obtener el ancho y alto correctos sin las barras de desplazamiento es desde el elemento HTML. Prueba esto:
El soporte del navegador es bastante decente, con IE 9 y versiones posteriores que lo admiten. Para OLD IE, use una de las muchas alternativas mencionadas aquí.
fuente
Experimenté un problema similar y al hacerlo
width:100%;
me lo resolvió. Llegué a esta solución después de intentar una respuesta en esta pregunta y darme cuenta de que la naturaleza misma de un<iframe>
hará que estas herramientas de medición de JavaScript sean inexactas sin usar alguna función compleja. Hacerlo al 100% es una forma sencilla de cuidarlo en un iframe. No sé sobre su problema, ya que no estoy seguro de qué elementos HTML está manipulando.fuente
Ninguna de estas soluciones funcionó para mí, sin embargo, pude solucionarlo tomando el ancho y restando el ancho de la barra de desplazamiento . No estoy seguro de si es compatible con varios navegadores.
fuente
Esto es lo que uso
fuente