Wie bekomme ich die Bildgröße (Höhe und Breite) mit JavaScript?
Gibt es irgendwelche jQuery oder pure JS-APIs oder Methoden, um die Abmessungen des Bildes auf der Seite?
InformationsquelleAutor der Frage Saneef | 2009-03-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
clientWidth und clientHeight sind DOM-Eigenschaften, die zeigen, dass die aktuellen in-browser die Größe der inneren Dimensionen eines DOM-Elements (ohne margin und border). Also in dem Fall ein IMG-element, diese erhalten die tatsächlichen Ausmaße des sichtbaren Bildes.
InformationsquelleAutor der Antwort Rex M
Auch (neben Rex und IANS Antworten) es ist:
und
Diese geben die Breite und Höhe der Bilddatei selbst (statt nur das Bild-element).
InformationsquelleAutor der Antwort olliej
Wenn Sie mit jQuery und den Sie anfordern, Bild-Größen, die Sie haben zu warten, bis Sie geladen werden, oder Sie erhalten nur Nullen.
InformationsquelleAutor der Antwort mrtsherman
Denke ich, dass ein update für diese Antworten ist nützlich, weil Sie eine der besten Stimmen, die Antworten schlägt mit
clientWidth
und clientHeight, die ich denke, ist jetzt obsolet.Habe ich getan einige Experimente mit HTML5, um zu sehen, welche Werte tatsächlich zurückgegeben.
Zunächst habe ich ein Programm namens Dash, um einen überblick über die Bild-API.
Es besagt, dass
height
undwidth
sind die gerenderte Höhe/Breite des Bildes und dasnaturalHeight
undnaturalWidth
sind die intrinsischen Höhe/Breite des Bildes (und HTML5).Habe ich ein Bild von einem schönen Schmetterling, der von einer Datei mit Höhe 300 und der Breite 400. Und dieses Javascript:
Dann habe ich diese HTML-mit-inline-CSS für die Höhe und Breite.
Ergebnisse:
Ich wechselte dann den HTML-Code der folgende:
also mit Höhe und Breite Attribute statt inline-styles
Ergebnisse:
Ich wechselte dann den HTML-Code der folgende:
d.h. die Verwendung beider Attribute und CSS, um zu sehen, welche Vorrang.
Ergebnisse:
InformationsquelleAutor der Antwort paulo62
Mithilfe von JQuery Sie dies tun:
InformationsquelleAutor der Antwort Ian Suttle
Dem, was alle anderen vergessen haben, ist, dass man nicht überprüfen Bild die Größe, bevor es geladen wird. Wenn der Autor prüft alle gepostet Methoden funktioniert es wohl nur auf dem localhost. Da jQuery könnte hier eingesetzt werden, denken Sie daran, die 'bereit' - Ereignis wird ausgelöst, bevor die Bilder geladen sind. $('#xxx').width() und .Höhe() gefeuert werden sollen, im onload-Ereignis oder später.
InformationsquelleAutor der Antwort Thinker
Kann man eigentlich nur dies tun, indem Sie eine callback des load-Ereignis wie die Größe des Bildes ist nicht bekannt, bis es tatsächlich fertig geladen ist. So etwas wie den code unten...
InformationsquelleAutor der Antwort Lee Hesselden
ok Jungs, ich denke ich habe mich verbessert den Quellcode zu können, lassen Sie das Bild laden, bevor Sie versuchen zu finden, seine Eigenschaften, sonst wird es display '0 * 0', denn die nächste Anweisung aufgerufen wurden, bevor die Datei in den browser geladen. Erfordert jquery...
InformationsquelleAutor der Antwort claudio
Bevor mit realen Bild-Größe sollten Sie load source image. Wenn Sie die JQuery-framework Sie können get real-image-Größe in einfacher Art und Weise.
InformationsquelleAutor der Antwort sub
Diese Antwort war genau was ich suchte (in jQuery):
InformationsquelleAutor der Antwort dev101
JQuery Antwort:
InformationsquelleAutor der Antwort Eli Geske
Einfach, können Sie testen, wie diese.
InformationsquelleAutor der Antwort cloudrain21
Können Sie auch verwenden:
InformationsquelleAutor der Antwort praveenjayapal
Nicky De Maeyer fragte nach einem hintergrund Bild, habe ich einfach Holen Sie es aus der css und ersetzen Sie die "url()":
InformationsquelleAutor der Antwort Hraban
InformationsquelleAutor der Antwort user3496915
Kürzlich hatte ich dasselbe Problem für einen Fehler in der flex-slider. Das erste Bild ist die Höhe, die eingestellt wurde kleiner durch das laden verzögern. Ich habe versucht, die folgende Methode für die Lösung dieses Problems, und es hat geklappt.
Dieser wird Ihnen die Höhe mit Bezug auf die Breite, die Sie angeben, anstatt der ursprünglichen Breite oder Null.
InformationsquelleAutor der Antwort muhammed basil
Können Sie die onload-Eigenschaft beim laden der Seite in js oder jquery wie diese:-
InformationsquelleAutor der Antwort Harkamal Singh
Dies ist meine Methode, hoffe, dass dies hilfreich. 🙂
InformationsquelleAutor der Antwort DHA
ist es wichtig, zu entfernen browser interpretiert Einstellung des übergeordneten div. Also, wenn Sie wollen, das Reale Bild der Breite und Höhe können Sie einfach
Dies ist eines TYPO3 Projektes Beispiel von mir, wo ich noch die realen Eigenschaften der das Bild zu skalieren, mit der richtigen Beziehung.
InformationsquelleAutor der Antwort Rogoit
diese Arbeit für mehrere Bild-Vorschau und hochladen . wenn Sie haben, wählen Sie für jedes der Bilder eins nach dem anderen . Dann copy & past in alle Vorschau-Bild-Funktion und überprüfen!!!
InformationsquelleAutor der Antwort danielad
Bevor erwerben element die folgenden Attribute des Dokuments-Seite sollte onload:
InformationsquelleAutor der Antwort 中国程序员