PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche Tip zu dynamischen image austauch.


cyberartist
2002-12-14, 18:49:12
Nabend.

Ich habe einige Overlay und Hintergrundsgrafiken, die Frameübergreifend eingesetzt werden ( CSS Positionierung, damits passt ). Auf den Seiten sieht das auch gut aus. Nur wenn ein Bild geladen wird, sieht man dann natürlich einen Teil des Hintergrunds nicht mehr. Im Navigationsframe sind aber noch Teile dieser images zu sehen.

Ich würde nun gerne die zwei images im linken frame, beim Laden der Bilder ausblenden ( durch ein Dummy ersetzen ), und wenn die
Haupt und Unterseiten wieder geladen werden, sollen die images wieder erscheinen.

geht das irgendwie per Javascript ?


Soe siehts derzeit aus : http://www.digitalfantasyart.de

mfg

grakaman
2002-12-15, 00:33:14
ja das kannst du per javascript machen.
wenn du ein backgroundimage hast, geht das so:

document.getElementsByTagName("body")[0].background = "bild.gif";

merke!!! entweder du rufst den code aus einer funktion aus, weil dann die page schon geladen ist oder du schreibst den obigen code in den script blöcken ganz unten von der seite hin. wenn du sonst zb. den code oben im head bereich definierst, versucht er auf das body objekt zuzugreifen, was ja noch nicht geladen ist.


für bilder, die du mit dem image tag anzeigst:

für w3c

document.getElementById("meinbild").src = "bild.gif";

...

<img src="bild.gif" id="meinbild">

für ie4 und ns

document.meinbild.src = "bild.gif";

...

<img src="bild.gif" name="meinbild">

hier gilt das gleiche, wie bei dem obigen bsp. den code kannst du erst ausführen, wenn der browser das bild tag geladen hat.


mfg

cyberartist
2002-12-15, 21:51:21
Hallo!

Vielen Dank erstmal für die Hilfe. Leider scheint die Angelegenheit problematischer zu sein.

Dein Vorschlag funktioniert erst nach Erweiterung auf Frametauglichkeit, schließlich soll ein Objekt in einem anderen
Frame geändert werden.

So funktioniert das auch :

top.Navigation.document.getElementsByTagName("body")[0].background = "bild.gif";


{Navigation} bezeichnet hier den Namen des Navigationsframes.


Da ich über das Background Attribut des Body TAGs nur eine dünne vertikale Linie lade ( Die soll auch bleiben ), den Sternen Hintergrund und einen Teil der
Erdkugel aber per, in einem SPAN Tag eingebetteten CSS Definition anzeigen lasse ( d.h. als Overlay Backgrounds ), funktioniert das ganze nicht. Ich bekome keinen Zugriff auf beide Objekte ( Sterne und Erde ).


So sehen die Zeilen für die Overlay Hintergründe aus :

<SPAN STYLE="background-image:url(Img/stars.gif); background-repeat:no-repeat;margin:0px;background-position:2px -52px;">


<SPAN STYLE="background-image:url(Img/earth.gif); background-repeat:no-repeat;margin:0px;background-position:135px -24px;">


Ich habe folgendermaßen versucht auf die Objekte zuzugreifen, ich bekomme zwar keinen Javascript Fehler, aber es funktioniert dennoch nicht :

top.Navigation.document.getElementsByTagName("span")[0].style.background.url = "Img/stars_bak.gif";



Any idea ?


Gruß...

grakaman
2002-12-16, 11:56:47
ich habs auch mal probiert und ne hinbekommen :( vielleicht gehts einfach nicht, glaub du kannst nich alle styleeigenschaften ändern. wenn du das über das all objekt vom ie machst, müsste es zumindest aber da gehen.

mfg

cyberartist
2002-12-17, 21:39:00
Originally posted by grakaman
ich habs auch mal probiert und ne hinbekommen :( vielleicht gehts einfach nicht, glaub du kannst nich alle styleeigenschaften ändern. wenn du das über das all objekt vom ie machst, müsste es zumindest aber da gehen.

mfg


Frage mich wie das aussehen sollte... "documet.all... undweiter ?"

Naja egal, denn mir fiel gerade ein, daß es schwierig sein würde die images nach dem Austausch, und bei Rückkehr auf die Thumbnail Seiten wieder richtig zu positionieren. Ich glaube ich lasse es so wie es ist.


Trotzdem Danke für die Mühe.