Existe-t-il des API ou des méthodes JavaScript ou jQuery pour obtenir les dimensions d'une image sur la page?
javascript
jquery
image
jquery-plugins
Saneef
la source
la source
Réponses:
Vous pouvez obtenir l'image par programme et vérifier les dimensions en utilisant Javascript ...
Cela peut être utile si l'image ne fait pas partie du balisage.
la source
clientWidth et clientHeight sont des propriétés DOM qui affichent la taille actuelle dans le navigateur des dimensions internes d'un élément DOM (hors marge et bordure). Ainsi, dans le cas d'un élément IMG, cela obtiendra les dimensions réelles de l'image visible.
la source
$.fn.width
et$.fn.height
.document.getElementById
est plus long à taper mais 10 fois plus rapide que$('#...')[0]
.De plus (en plus des réponses de Rex et Ian) il y a:
et
Ceux-ci fournissent la hauteur et la largeur du fichier image lui-même (plutôt que simplement l'élément image).
la source
Si vous utilisez jQuery et que vous demandez des tailles d'image, vous devez attendre qu'elles se chargent ou vous n'obtiendrez que des zéros.
la source
Je pense qu'une mise à jour de ces réponses est utile car l'une des réponses les mieux votées suggère d'utiliser
clientWidth
et clientHeight, qui je pense est désormais obsolète.J'ai fait quelques expériences avec HTML5, pour voir quelles valeurs sont réellement retournées.
Tout d'abord, j'ai utilisé un programme appelé Dash pour obtenir un aperçu de l'API d'image. Il indique que
height
etwidth
sont la hauteur / largeur rendue de l'image et quenaturalHeight
etnaturalWidth
sont la hauteur / largeur intrinsèque de l'image (et sont uniquement HTML5).J'ai utilisé une image d'un beau papillon, à partir d'un fichier de hauteur 300 et de largeur 400. Et ce Javascript:
Ensuite, j'ai utilisé ce HTML, avec CSS en ligne pour la hauteur et la largeur.
Résultats:
J'ai ensuite changé le code HTML comme suit:
c'est-à-dire en utilisant des attributs de hauteur et de largeur plutôt que des styles en ligne
Résultats:
J'ai ensuite changé le code HTML comme suit:
c'est-à-dire en utilisant à la fois des attributs et du CSS, pour voir lequel est prioritaire.
Résultats:
la source
En utilisant JQuery, vous faites ceci:
la source
width
etheight
de l'img
élément.Ce que tous les autres ont oublié, c'est que vous ne pouvez pas vérifier la taille de l'image avant qu'elle ne se charge. Lorsque l'auteur vérifie toutes les méthodes publiées, cela ne fonctionnera probablement que sur localhost. Étant donné que jQuery peut être utilisé ici, n'oubliez pas que l'événement «ready» est déclenché avant le chargement des images. $ ('# xxx'). width () et .height () doivent être déclenchés dans l'événement onload ou version ultérieure.
la source
Vous ne pouvez vraiment le faire qu'en utilisant un rappel de l'événement de chargement, car la taille de l'image n'est pas connue tant qu'elle n'a pas fini de se charger. Quelque chose comme le code ci-dessous ...
la source
Avec la bibliothèque jQuery-
Utilisez
.width()
et.height()
.Plus en largeur jQuery et en hauteur jQuery .
Exemple de code-
la source
ok les gars, je pense que j'ai amélioré le code source pour pouvoir laisser l'image se charger avant d'essayer de découvrir ses propriétés, sinon il affichera '0 * 0', car la prochaine instruction aurait été appelée avant le chargement du fichier le navigateur. Nécessite jquery ...
la source
En supposant, nous voulons obtenir les dimensions de l'image de
<img id="an-img" src"...">
Dimensions naturelles
el.naturalWidth
etel.naturalHeight
nous obtiendra les dimensions naturelles , les dimensions du fichier image.Dimensions de disposition
el.offsetWidth
etel.offsetHeight
nous obtiendra les dimensions auxquelles l'élément est rendu sur le document.la source
Avant d'utiliser la taille réelle de l'image, vous devez charger l'image source. Si vous utilisez le framework JQuery, vous pouvez obtenir la taille réelle de l'image de manière simple.
la source
Cette réponse était exactement ce que je cherchais (dans jQuery):
la source
Vous pouvez avoir une fonction simple comme la suivante (
imageDimensions()
) si vous ne craignez pas d'utiliser des promesses .la source
Réponse JQuery:
la source
J'ai pensé que cela pourrait être utile à certains qui utilisent Javascript et / ou Typescript en 2019.
J'ai trouvé ce qui suit, comme certains l'ont suggéré, incorrect:
C'est correct:
Conclusion:
Utilisez
img
, nonthis
, enonload
fonction.la source
Récemment, j'ai eu le même problème pour une erreur dans le curseur flexible. La hauteur de la première image a été réduite en raison du délai de chargement. J'ai essayé la méthode suivante pour résoudre ce problème et cela a fonctionné.
Cela vous donnera la hauteur par rapport à la largeur que vous définissez plutôt que la largeur d'origine ou zéro.
la source
Vous pouvez aussi utiliser:
la source
Nicky De Maeyer a demandé après une image de fond; Je l'obtiens simplement du css et remplace le "url ()":
la source
s.substr(4,s.length-5)
, c'est au moins plus facile pour les yeux;)Vous pouvez appliquer la propriété du gestionnaire onload lorsque la page se charge en js ou jquery comme ceci: -
la source
Simplement, vous pouvez tester comme ça.
la source
la source
il est important de supprimer le paramètre interprété par le navigateur du div parent. Donc, si vous voulez la vraie largeur et hauteur de l'image, vous pouvez simplement utiliser
Ceci est un exemple de projet TYPO3 de ma part où j'ai besoin des propriétés réelles de l'image pour la mettre à l'échelle avec la bonne relation.
la source
C'est ma méthode, j'espère que cela vous sera utile. :)
la source
ce travail pour l'aperçu et le téléchargement de plusieurs images. si vous devez sélectionner pour chacune des images une par une. Copiez et collez ensuite dans toute la fonction d'aperçu de l'image et validez !!!
la source
Avant d'acquérir les attributs d'un élément, la page du document doit être en charge:
la source
il suffit de passer l'objet fichier img qui est obtenu par l'élément d'entrée lorsque nous sélectionnons le fichier correct, il donnera la hauteur et la largeur nette de l'image
la source