La taille de l'image avant est dans DOM
Comment puis-je obtenir la taille de l'image avant je l'ai mis dans les DOM?
var imgLoad = $("<img />");
$(imgLoad).attr("src", ImageGallery.ImagesList[index] + "?" + new Date().getTime());
$(imgLoad).unbind("load");
$(imgLoad).bind("load", function () {
//Get image sizes
alert(imgLoad.width()); //RETURN 0
});
source d'informationauteur David Horák
Vous devez vous connecter pour publier un commentaire.
Utilisation
imgLoad[0].width
etimgLoad[0].height
au lieu de cela, ou de l'utilisationthis
au lieu deimgLoad
:Cela fonctionne parce que le navigateur remplit la
height
/width
propriétés de l'élément lorsqu'il télécharge l'image. jQuery, d'autre part, cherche le réel visible dimensions de l'élément, ce sera toujours 0 lorsqu'un élément n'est pas affiché.Notez que vous n'avez pas besoin de garder l'emballage
imgLoad
avec$()
parce que c'est déjà un objet jQuery.Lors de la création d'une nouvelle Image .la largeur de vous donner les dimensions natives de l'onu-rendu de l'image, tandis que .largeur() est une méthode jQuery, et ne retourne pas une valeur jusqu'à ce que l'image est insérée dans le DOM.
Dans la plaine de vieux JS;
vous renvoie une valeur vraie