Javascript + Layer-Position

Moritz123

Erfahrenes Mitglied
Hallo!

ich bin ein absoluter JavaScript-Neuling - nur um das vorauszuschicken und möglicherweise vorzuwarnen ;)

Nun aber zum eig Problem:

Ich habe auf meiner Seite einen Layer der absolut positioniert ist. Nun ist natürlich das Problem: habe ich unterschiedliche Auflösungen, verdeckt der LAyer teile des Seitentextes. Daher dachte ich mir: rechne ich einfach mit Javascript einen Näherungswert aus und setze in den Layer ein. Ich habe das so gemacht:
HTML:
<script language="javascript">
<!--
function breite()
{
	var breite_temp;
	var breite_end;
	breite_temp = (screen.width / 5);
	breite_end = screen.width - breite_temp;
   	return breite_end;
}
-->
</script>

und so gebe ich dann meinen Layer aus:
HTML:
<script language=Javascript>
<!-- 
document.write('<div id=\"Layer1\" style=\"left: " +breite()+ "px\" class=layer><a href=\"angebote.php?content=angebote_ostereierfarben\"><img src=\"dateien/Unbenannt-2.gif\" width=\"110\" height=\"350\" border=\"0\"></a></div>'); 
-->
</script>

Nun kommt aber nicht annähernd das raus, was rauskommen sollte - er schiebt den Layer lediglich ein Stück auf der Seite nach rechts.
Was mache ich falsch?

Vielen Dank!
 
die eigenschaft left legt ja auch nur den abstand des divs vom Elternelement auf der linken seite, wenn dann musst du schon die width-eigenschaft mit diesem wert belegen, obwohl ich das für wenig elegant halte, aber vielleicht ist das für deine anwendung nötig
flooo
 
Vielen Dank erst mal für deine Antwort.

Ich will ja den Abstand vom linken Rand "dynamisch" berechnen lassen, damit mit der dämliche Layer bei größeren Auflösungen nicht in der Mitte der Seite rumfliegt und den Text verdeckt.

Gibt es eigentlich eine Möglichkeit, das Ergebnis der Funktion breite() in eine PHP-Variable laden zu lassen?
 
nein, weil
PHP -> Serverseitig
Javascript -> Clientseitig
höchstens mittels formular, aber was willst du den eigentlich machen
erkläre mal anschaulich
 
Ok, nocheinmal:

Ich möchte einen Layer absolut auf einer Seite positionieren. Dazu verwende ich:
HTML:
style="position:abolute; left:xxpx;"

Dabei stellt sich folgendes Problem dar: ersetze ich xx durch eine statische Zahl, zB 830, so sieht das Ganze bei einer Auflösung von 1024x768 zwar toll aus; der Layer befindet sich am rechten Rand der Seite, wo ich Ihn haben will, aber: Bei einer Auflösung von beispielsweise 1600x1200 befindet sich die x-Koordinate 830 natürlich wesentlich weiter in der Mitte der Seite. Defakto befindet sich der Layer über dem Text, der in der Mitte der Seite steht und schmälert so das Lesevergnügen, da er verdeckt wird.

Daher dachte ich mir: Ich erechne einfach eine Zahl für die x-Koordinate, die ich dann in den style-Tag eingebe:
HTML:
<script language=Javascript>
<!-- 
document.write('<div id=\"Layer1\" style=\"left: " +breite()+ "px\" class=layer><a href=\"angebote.php?content=angebote_ostereierfarben\"><img src=\"dateien/Unbenannt-2.gif\" width=\"110\" height=\"350\" border=\"0\"></a></div>'); 
-->
</script>

Allerdings wird der Layer nun nicht annähernd an den rechten Rand gerückt, sondern dümpelt irgendwo am linken Rand rum.

Konkret:
[ Screenshot1 ]

So sollte es aber aussehen:
[ Screenshot2 ]


So, ich hoffe, dass war nun verständlicher. Sorry, falls ich mich in den vorhergehenden Posts unklar ausgedrückt habe.

Vielen Dank für Eure Hilfe!
 
Mmhh... du willst etwas rechts positionieren?
Warum tust du es dann nicht?
Code:
style="position:abolute; right:0"
...ganz ohne Javascript-Klimmzüge.
 

Neue Beiträge

Zurück