Existe-t-il un moyen fiable et indépendant du cadre de déterminer les dimensions physiques d'un <img src='xyz.jpg'>
redimensionné côté client?
javascript
image
Pekka
la source
la source
img.onload = function () {console.log(img.height, img.width)}
Réponses:
Vous avez 2 options:
Option 1:
Retirez les
width
etheight
attributs et lireoffsetWidth
etoffsetHeight
Option 2:
Créez un
Image
objet JavaScript , définissez lesrc
, et lisez lewidth
etheight
(vous n'avez même pas besoin de l'ajouter à la page pour ce faire).Edit par Pekka : Comme convenu dans les commentaires, j'ai changé la fonction pour qu'elle s'exécute sur l'événement «onload» de l'image. Sinon, avec de grandes images,
height
etwidth
ne retournerait rien car l'image n'était pas encore chargée.la source
newImg.onload
fonction pour m'assurer que l'image est chargée lorsque je règle la largeur / hauteur. Êtes-vous d'accord pour que je modifie votre réponse en conséquence?if(newImg.complete || newImg.readyState === 4) newImg.onload();
à la fin de votre fonction, cela résoudra le problème sur Chrome / OSX qui empêche le chargement de se déclencher lorsque les images sont chargées à partir du cache.Les images (au moins sur Firefox) ont une
naturalWidth
propriété / height, vous pouvez donc l'utiliserimg.naturalWidth
pour obtenir la largeur d'origineLa source
la source
Vous pouvez précharger l'image dans un objet Image javascript, puis vérifier les propriétés de largeur et de hauteur de cet objet.
la source
la source
element
une sélection jQuery? Qu'en est-il de la hauteur?Il suffit de changer un peu la deuxième option de Gabriel, pour être plus facile à utiliser:
Html:
Exemple d'appel:
la source