createElement("img") vs. new Image()
Yadgar
- javascript
High!
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.
Dabei stellte ich fest, dass zum Erzeugen eines neuen Bildobjektes sowohl createElement("img") - wie ich es bis jetzt bei anderen Elementen gemacht haben - als auch newImage() zulässig sind.
Welcher Methode ist denn jetzt unter welchen Bedingungen der Vorzug zu geben und warum?
Bis bald im Khyberspace!
Yadgar
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
[...], auf das Du [...] und das Du [...].
Soll natürlich heißen "[...], auf den Du [...] und den Du [...].".
;)
Andreas