http://photo.163.com/shixiaojian089/train/28002 Dies ist ein Fotoalbum von Netease. Ich möchte es ausprobieren, nachdem ich es gesehen habe.
In meiner Produktionsmethode muss ich die Breite jedes Fotos erhalten, sodass ich natürlich die Width () -Methode von JQ verwendet habe. Es gibt kein großes Problem beim Laufen unter FF und IE, aber wenn es um Chrom geht, gibt es ein Problem.
Verwenden Sie die Warnung zur Fehlerbehebung und stellten fest, dass die von der Breitenmethode in Chrome erhaltenen Werte 0 betragen. In diesem Fall denke ich, dass das Bild überhaupt nicht geladen wird, wenn das Skript hier ausgeführt wird. Das Problem sollte mit $ (function () {}) sein; Da diese Methode nur erfordert, dass das DOM nach dem Laden ausgeführt wird. Ändern Sie es dann, um es unter Onload auszuführen, und es ist in Ordnung. Dies ist jedoch offensichtlich keine gute Lösung. Schließlich müssen Sie warten, bis alle Inhalte der gesamten Datei geladen sind, bevor Sie das Skript ausführen.
Nachdem ich online gesucht hatte, stellte ich fest, dass dieser Typ //www.vevb.com/article/50402.htm ebenfalls auf das gleiche Problem gestoßen ist. Unter seinem Kommentar befindet sich eine Lösung, die als Referenz verwendet werden kann:
Verwenden Sie es, wo Sie die Breite und Höhe des Bildes erhalten möchten
Die Codekopie lautet wie folgt:
$ img.load (function () {
var img_h = $ img.height ();
var img_w = $ img.width ();
}
Auf diese Weise können Sie immer noch $ (function () {}) verwenden; Rufen Sie die Lademethode auf dem Bildobjekt auf, in dem das Bild geladen werden muss, und vermeiden Sie, dass der gesamte Dateiinhalt geladen wird.