eigentlich wollte ichd as folgende Bildschirmauflösungs-Script dazu verwenden, den Abstand eines Layers zum Bildschirmrand aufgrund der AUflösung zu bestimmen. Wenn ich diesen Code in meine Website einfüge, verschwindet diese jedoch ganz und man sieht nur noch die Bildschirmauflösung in Zahlen (z.B. 1024*768)
Was muss ich tun,d amit das Script den Rest der Website nicht frisst?
<!–
function Umleitung()
{
var FBreite = 0;
var FHoehe = 0;
if (document.all) {
FBreite = document.body.clientWidth;
FHoehe = document.body.clientHeight;
}
mit document.write() wirst Du Deinen Layer nicht setzten koennen und dient wohl hier nur zum Testen denke ich mal.
Ausserdem kann ueber document.write() nicht angegeben werden, wo Du denn nur in das bestehende Dokument etwas zusätzliches reinschreiben moechtest, es sei denn Du bettest einen script-Bereich in dem body-Bereich ein.
Wenn das Script im Header steht oder extern eingebunden wird, dann beschreibt es das Dokument komplett neu und der bereits bestehende Inhalt wird ueberschrieben. Es wirk praktisch wie folgt:
Die Sache macht man indem man den Layer bereits im body haelt, aber die visibility auf hidden stellt. Nach Bestimmung der Aufloesung positioniert man den Layer „blind“ und setzt dann die visibility auf show oder visible.
Und allerdings ist es dann auch so, dass wenn der User das Browser-Fenster nachtraeglich aendert, dass sich der restliche Inhalt verschiebt, aber nicht der Layer, denn dieser ist absolute postioniert. Er muesste also staendig nachjsutiert werden, was es schwer macht, es sei denn der restliche Inhalt ist auch fest postioniert.
-((( klingt ja sehr kompliziert. ich hab bei document write halt den ganzen div code eingesetzt, das hat auch geklappt, nur das der rest der seite verschwindet. irgendwie muss es doch möglich sein einen ganz normalen layer bei 800er auflösung 500 pixel nach rechts zu positionieren und bei 1024er auflösung 700 pixel… (( gibts da gar keine lösung? ist nämlich ziemlich wichtig sonst hab ich eine menge gut ausehender arbeit umsonst gemacht
gruß
stephan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
niemand behauptet, dass dies nicht moeglich ist. Die optimale Loesung haengt aber mit Sicherheit auch vom Rest Deiner Seite ab. Wenn der Layer von anderen Elementen der Seite umflossen wird, dann ist eine absotute positionierung wenig erfolgreich, weil sich dann die relativ positionierten Elemente dem normalen Elementfluss folgen und sich bei einer Aenderung der Browsergroesse gegen das absolut positionierte Element (was vom normalen Elementfluss losgeloest ist) verschieben.
Des weiteren haengt es auch davon ab, ob der Layer relativ zum Rahmen des Browserfensters fixiert bleiben soll (scroll, resize) oder mit dem restlich Inhalt der Seite sich mitbewegen soll.
umfliessung etc. spielt keine rolle. der layer soll einffach nur über den html tabellen liegen. gescrollt muss auch nicht werden. das einzige problem ist - weswegen ich den auflösungs scanner auch verwenden muss - das der layer bei user die eine 800er auflösung haben, näher am linken browserrand sein muss als bei usern die eine 1024er auflösung haben. müsste doch eigentlich ganz einfach sein.
gruß
stephan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
was heisst „ueber den html-Tabellen liegen soll“? Dadurch kann man das, was in den Tabellen steht ja nicht lesen oder nur schlecht. Ansonsten wuerde ich den Bereicht, der links von der Tabelle liegen soll, mit in den Tabelle als eine grosse Zelle integrieren und die width und height explizit in td setzten. Dann passt es immer unabhängig von der Aufloesung.
mach dir darum mal keine sorgen es ist ein teiltransparentes .gif, außerdem kann man ja auch html elemente drüberlegen, z.b. inputboxen. es hat schon seinen grund warum ich das mit layern mache, mit tabellen geht es wirklich nicht. u.a. weil die grafik optional hinzugeschaltet werden soll und weil es ansonsten platznot gibt. wenn du mir nicht weiterhelfen kannst, muss ich wohl leider die hiesige browserweiterleitung nutzen und die auflösung via php zum anderen dokument schicken um dort mit einer php if funktion zu arbeiten. ist aber doof mit den suchmaschineneinträgen und so, ich hasse jene weiterleitungen.
gruß
stephan
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
leider sind Deine Angaben zu ungenau um wirklich eine Empfehlung aussprechen zu koennen. Es faengt schon bei folgender Ueberlegung an:
Du willst den Abstand eines Layer anhangt der Bildschirm-Aufloesung bestimmen. Wenn der Layer im body deklariert ist und seine Position entweder relativ oder absolut ueber CSS definiert wurde, so kannst Du die Position des Layers nicht per JS bestimmen. Das geht nur, wenn Du ihn zuvor schon explizit ueber JS gesetzt hast!!
Wenn Du nun als erstes erst die Groesse des Browserfenster bestimmst, um anhand dieser Werte die Position des Layers zu bestimmen, dann geht das nicht, all die weil Du sie zuvor nicht explizit gesetzt hast. Setzt Du nun die Position des Layers unmittelbar nach dem Laden des Dokuments explizit per JS anhang der Browser-Groesse dann ist Dir a’priori Deine gewuenschte Position des Layers im Script schon bekannt und Du brauchst sie a’posteri nicht noch mal abzufragen und gegebenenfalls zu setzten.
Ein Layer der z.B. ueber CSS an die Position left:50px; top:50px; gesetzt wuerde, liefert bei der Abfrage seiner Position stets null oder 0 zurueck, denn die Variablen ueber die Position des Layers sind dem Browser nicht bekannt, weil sie nicht initialisiert wurden.
Du siehst also, dass diese Zirkelargumentation keine Loesung bringt.