ne peut pas obtenir la vraie hauteur / largeur de l'objet en chrome
J'ai une question, si j'ai mis une hauteur de l'image en css et essayer d'obtenir la hauteur/largeur j'obtiens des résultats différents selon les navigateurs. Est-il possible d'obtenir la même dimension dans tous les navigateurs?
Vous pouvez trouver un exemple vivant ici<-suppression de l'
et le concept est comme ceci:
CSS:
img{
height:100px;
}
Script:
$(document).ready(function(){
$("#text").append($("#img_0").attr("height"));
$("#text").append($("#img_0").attr("width"));
});
Sortie De Firefox:
img height: 100
img largeur: 150
Sortie De Google Chrome:
img height: 100
img width: 0
Sortie De Google Chrome:
img height: 100
img largeur: 93?
j'ai essayé de StackOverflow:
stackoverflow.com/questions/1873419/jquery-get-height-width
mais encore obtenir le même résultat
Tout savoir une bonne solution?
source d'informationauteur Cinaird
Vous devez vous connecter pour publier un commentaire.
Les images ne sont pas chargées dans
document.ready
vous devez utiliser lewindow.load
événement pour s'assurer qu'ils sont présents, comme ceci:Voici un peu de lecture sur la différencel'important, c'est que les images sont chargées.
Nick Craver de réponse à utiliser $(window).load() est correct, mais les images ont aussi une méthode load (), qui permet une granularité plus fine, surtout si il y a peut-être plusieurs images à charger.
On dirait que c'est une condition de concurrence, au moins ça l'était pour moi à l'aide de Chrome. L'image n'est pas fini de se charger, à la fois que vous obtenez les dimensions. J'ai mis tout à feu après un 200ms délai d'attente et la vraie largeur/hauteur sont affichés.
Testé et fonctionne dans Chrome, IE et Firefox. Tous affichent 2008 x 3008.
Remplacer
avec
Opera 10.10 hauteur/largeur 2008 x 3008