![]() |
Forums-Auslese |
![]() |
|
![]() |
Basierend auf einem Forums-Beitrag vom 30.07.1998 von:
Paul Hobrecker, hobrecker@solutions-partner.de
Sowohl in Netscape als auch im Microsoft Internet-Explorer können
im Browserfenster Bereiche mit beliebigem HTML-Inhalt frei positionierbar definiert werden. Dies geschieht bei Netscape mit Layern, deren Funktionalität beim Internet-Explorer im "document.all"-Objekt enthalten ist (lesen Sie hierzu Dynamisches Positionieren (Netscape) und
Das all-Objekt).
Das Code-Beispiel aus diesem Beitrag hat den Vorteil,
mit relativ wenig Aufwand auf beiden Browsern zu laufen. Insbesondere
kann hier für beide Browser der selbe HTML-Block verwendet werden.
Damit dies funktioniert, muß man wissen, daß die Positionierung
bei beiden Browsern mit
dem <div ...>-Tag auf nahezu gleiche Weise funktioniert.
Lediglich die unterschiedliche JavaScript-Referenzierung der
Koordinaten,
wird im Beispiel durch die String-Variablen Objekt_Referenz und IE_Style gelöst, welche abhängig vom Browsertyp in function start() definiert werden. In der ersten Variable wird der Vorsatz document.all bzw. document.layers und in der zweiten der Zusatz .style für IE 4.x gespeichert. In der Funktion Objekt_Positionieren(Objekt_Name, links, oben) wird nun mit diesen Variablen und dem Objektnamen ein String zusammengesetzt, der genau einem JavaScript-Befehl zur Positionierung entspricht und dieser mit der eval("...")-Funktion ausgeführt.
<html> <head><title>Bewegliche Objekte für Netscape und Microsoft IE</title> <script language="JavaScript"> <!-- var pausenLaenge = 0, Objekt1_Step = 5, Objekt2_Winkelgeschw = 0.05, Objekt1_XPos = 200, Objekt2_Winkel = 0, Objekt_Referenz="", IE_Style=""; function start() { if (navigator.appName == "Netscape") { Objekt_Referenz="document.layers"; IE_Style=""; }else{ Objekt_Referenz="document.all"; IE_Style=".style"; } bewegung(); } function bewegung() { Objekt_Positionieren("Objekt1",Objekt1_XPos,10); if (Objekt1_XPos > 300 || Objekt1_XPos < 100) Objekt1_Step = Objekt1_Step * (-1); Objekt1_XPos += Objekt1_Step; Objekt2_XPos = Math.sin(Objekt2_Winkel)*70 + 100; Objekt2_YPos = Math.cos(Objekt2_Winkel)*70 + 200; Objekt_Positionieren("Objekt2", Objekt2_XPos, Objekt2_YPos); Objekt2_Winkel += Objekt2_Winkelgeschw; MeinTimer = window.setTimeout("bewegung();", pausenLaenge); } function Objekt_Positionieren(Objekt_Name, links, oben){ eval(Objekt_Referenz+'["'+Objekt_Name+'"]'+IE_Style+'.top = oben'); eval(Objekt_Referenz+'["'+Objekt_Name+'"]'+IE_Style+'.left = links'); } //--> </script> </head> <body bgcolor="#ffffff" onload="start()"> <div id="Objekt1" style="position:absolute;top:200;left:100;"> <img src="objekt1.gif" width=90 height=90 border=0> </div> <div id="Objekt2" style="position:absolute;top:200;left:300;"> <img src="objekt2.gif" width=90 height=90 border=0> </div> </body></html> |
Weitere Erläuterungen zu diesem Beispiel finden Sie im Quellcode der entsprechenden Datei unter:
http://www.videoaktuell.de/dhtml
![]() | |
weiter:![]() |
![]() |
zurück:![]() |
![]() |
das Redaktionsteam