¿Existe una forma confiable e independiente del marco de determinar las dimensiones físicas de un <img src='xyz.jpg'>
redimensionado en el lado del cliente?
javascript
image
Pekka
fuente
fuente
img.onload = function () {console.log(img.height, img.width)}
Respuestas:
Tienes 2 opciones:
Opción 1:
Retire las
width
y losheight
atributos y leeroffsetWidth
yoffsetHeight
Opcion 2:
Cree un
Image
objeto JavaScript , configure elsrc
y lea elwidth
yheight
(ni siquiera tiene que agregarlo a la página para hacer esto).Editar por Pekka : Como se acordó en los comentarios, cambié la función para que se ejecute en el evento ´onload´ de la imagen. De lo contrario, con imágenes grandes,
height
ywidth
no devolvería nada porque la imagen aún no se cargó.fuente
newImg.onload
función para asegurarme de que la imagen se cargue cuando configuro el ancho / alto. ¿Estás de acuerdo con que edite tu respuesta en consecuencia?if(newImg.complete || newImg.readyState === 4) newImg.onload();
al final de su función, solucionará el problema en Chrome / OSX que hace que la carga no se active cuando las imágenes se cargan desde el caché.Las imágenes (en Firefox al menos) tienen una
naturalWidth
propiedad / height para que pueda usarimg.naturalWidth
para obtener el ancho originalFuente
fuente
Puede precargar la imagen en un objeto Image de javascript, luego verificar las propiedades de ancho y alto en ese objeto.
fuente
fuente
element
Qué es una selección de jQuery? ¿Qué pasa con la altura?Simplemente cambiando un poco la segunda opción de Gabriel, para que sea más fácil de usar:
HTML:
Llamada de muestra:
fuente