Hallo
Hallo Auge,
ich verwende jetzt nicht naturalWidth/naturalHeight. Ich lese width/height im onload-Event der Bilder aus.
Ja, schön. Damit erhältst du aber nur die Größe, mit der ein Bild auf der Seite angezeigt wird, nicht seine native Größe. Das interessiert mich bei einem Bild, das als als kleines Thumbnail auf der Seite angezeigt wird, dessen "echte" Größe ich aber für die Anzeige im Popover benötige, nicht.
Ich würde gerne wissen, ob es für naturalWidth
und naturalHeight
Rahmenbedingungen gibt, die ich übersehen haben könnte.
Zum Vergleich: ermittle ich ein im Dokument vorhandenes Element und füge dieses per appendChild
als Kind zweier anderer Elemente ein, wird es nach dem Skriptlauf nur im letzten der avisierten Elternelemente vorhanden sein. Das war mir nicht klar und ich wunderte mich, warum das fragliche Element an der ersten der gewünschten Stellen nicht vorhanden war, bis ich den zweiten Aufruf von appendChild
auskommentiert habe. Mir wurde die Ursache erst nach Studium des MDN-Artikels klar, der als einzige Quelle, die ich fand, erklärte, dass das Element, das ich per appendChild
woanders hin verbringen will, zuerst an seiner Ursprungsstelle entfernt wird, bevor es an der gewünschten Stelle eingefügt wird. Es wird eben auch beim mehrfachen einfügen wieder aus den Elementen entfernt, in die es „zwischendurch“ eingehängt wurde.
Zitat aus dem MDN-Artikel zu appendChild
:
„Note: If the given child is a reference to an existing node in the document, appendChild() moves it from its current position to the new position.“
Gibt es vergleichbare Randbedingungen eventuell auch für naturalWidth
und naturalHeight
abseits vom Dateityp [1], die ich übersehen haben könnte?
Der MDN-Artikel zu naturalWidth
besagt, dass unter bestimmten Bedingungen als Wert 0
herauskommen kann.
„If the intrinsic width is not available—either because the image does not specify an intrinsic width or because the image data is not available in order to obtain this information, naturalWidth returns 0.“
Schön, aber die Bilder sind da und bei Rastergrafiken soll das Verfahren funktionieren. Also warum werden mir dann in der Konsole als Eigenschaften des Objekts die korrekten Werte angezeigt, beim auslesen mit den fraglichen Methoden aber nicht?
Tschö, Auge
„Habe ich mir das nur eingebildet, oder kann der kleine Hund wirklich sprechen?“ fragte Schnapper. „Er behauptet, nicht dazu imstande zu sein“ erwiderte Victor. Schnapper zögerte (…) „Nun …“ sagte er schließlich, „ich schätze, er muss es am besten wissen.“ Terry Prattchett, Voll im Bilde
Rastergrafiken sollen aber grundsätzlich ihre Dimensionen herausgeben. Bei mir geht es um Bilder der Dateitypen JPEG und PNG. ↩︎