Gibt es eine zuverlässige, rahmenunabhängige Methode zum Bestimmen der physischen Abmessungen einer <img src='xyz.jpg'>
Größe auf der Client-Seite?
javascript
image
Pekka
quelle
quelle
img.onload = function () {console.log(img.height, img.width)}
Antworten:
Sie haben 2 Möglichkeiten:
Option 1:
Entfernen Sie die
width
undheight
Attribute und lesenoffsetWidth
undoffsetHeight
Option 2:
Erstellen Sie ein JavaScript-
Image
Objekt, legen Sie das festsrc
und lesen Sie daswidth
undheight
(Sie müssen es nicht einmal zur Seite hinzufügen, um dies zu tun).Edit by Pekka : Wie in den Kommentaren vereinbart, habe ich die Funktion so geändert, dass sie beim "Laden" des Ereignisses des Bildes ausgeführt wird. Andernfalls mit großen Bildern
height
undwidth
würde nichts zurückgeben, da das Bild noch nicht geladen wurde.quelle
newImg.onload
Funktion, um sicherzustellen, dass das Bild geladen wird, wenn ich die Breite / Höhe einstelle. Kannst du deine Antwort entsprechend bearbeiten?if(newImg.complete || newImg.readyState === 4) newImg.onload();
am Ende Ihrer Funktion hinzufügen , wird das Problem unter Chrome / OSX behoben, das dazu führt, dass der Onload nicht ausgelöst wird, wenn Bilder aus dem Cache geladen werden.Bilder (mindestens in Firefox) haben die
naturalWidth
Eigenschaft / height, sodass Sieimg.naturalWidth
die ursprüngliche Breite ermitteln könnenQuelle
quelle
Sie können das Bild in ein Javascript-Bildobjekt vorladen und dann die Eigenschaften für Breite und Höhe dieses Objekts überprüfen.
quelle
quelle
element
eine jQuery-Auswahl? Was ist mit der Höhe?Nur ein bisschen Gabriels zweite Option ändern, um einfacher zu bedienen zu sein:
Html:
Beispielanruf:
quelle