Andreas Dölling: createElement("img") vs. new Image()

Beitrag lesen

Hallo,

Mein Problem von vorhin ("Hintergrundbilder skalierbar") konnte ich zwischenzeitlich lösen - sie sind offenbar NICHT skalierbar, andererseits haben Inline-Bilder keine position-Eigenschaften, also muss man sie als Kindelemente in einen allgemeinen Bereich (<div>) einhängen.

Doch, Du kannst doch auch ein IMG-Element absolut positionieren (CSS: position:absolute; top:10px; left:20px; ...). Das Bild liegt dann allerdings ggf. über anderen Elementen.

Welcher Methode ist denn jetzt unter welchen Bedingungen der Vorzug zu geben und warum?

Es besteht schon ein Unterschied: mit var my_image = new Image(); erzeugst Du eine neue Instanz der in JS vordefinierten Standardklasse Image, die an sich erst einmal mit Deinem HTML-Dokument und dessen DOM-Baum nichts zu tun hat.
Mit document.createElement("IMG"); erzeugst Du hingegen einen neuen DOM-Knoten, auf das Du nun auch die DOM-Methoden (etwa [node].setAttribute()) anwenden und das Du in den DOM-Baum an gewünschter Stelle einhängen kannst (z.B. mit [node].appendChild()).

Wenn Du nur Bilder vorladen willst und/oder Bildwechsel durch Austausch der Bildquelle ([Image-Obj].src) erreichen willst, dann ist meines Erachtens die Verwendung des Image-Objekts einfacher.

Ciao,
Andreas