Eigenschaften von einem Tag mit JS anders als ohne JS????
Harrie
- javascript
Hallo!
Besteht die Möglichkeit, einen <div>-Tag mit anderen Eigenschaften zu versehen wenn JavaScript aktiviert ist, als wenn JS nicht aktiviert ist??
Mittels <noscript> wird ja NUR das ausgeführt was innerhalb des Tags steht, wenn JS nicht aktiviert ist...
Danke, Harrie!
Tag Harrie.
Besteht die Möglichkeit, einen <div>-Tag mit anderen Eigenschaften zu versehen wenn JavaScript aktiviert ist, als wenn JS nicht aktiviert ist??
Ja. Weise dem DIV mittels CSS die Eigenschaften zu, die du ohne JS haben willst und ändere diese mit Hilfe von JS ab.
Siechfred
Sorry, wie ich merke, habe ich mich blöd ausgedrückt bzw. mein Problem nicht deutlich genug dargestellt.
Ich will einem <div>-Tag die Eigenschaft style='visibility:hidden' mitgeben (nicht per JS, sondern per css), wenn JS aktiviert ist (um sie dann später per JS visible zu machen) und die Eigenschaft weglassen, wenn JS nicht aktiviert ist, da sonst ja nichts angezeigt wird...
Ich will einem <div>-Tag die Eigenschaft style='visibility:hidden' mitgeben (nicht per JS, sondern per css)
Soweit kein Problem, denke aber daran, dass visibility die Darstellung mit Platzhaltern beeinflusst, d.h., du siehst das Element zwar nicht, aber es nimmt trotzdem Platz ein.
wenn JS aktiviert ist (um sie dann später per JS visible zu machen) und die Eigenschaft weglassen, wenn JS nicht aktiviert ist, da sonst ja nichts angezeigt wird...
Dann setze das DIV von Haus aus (mit CSS) auf display:none. Mit Javascript kannst du dann via style-Objekt an den CSS-Eigenschaften rumschrauben, wie es dir beliebt.
Siechfred
hi,
wenn JS aktiviert ist (um sie dann später per JS visible zu machen) und die Eigenschaft weglassen, wenn JS nicht aktiviert ist, da sonst ja nichts angezeigt wird...
Dann setze das DIV von Haus aus (mit CSS) auf display:none.
Eben das will er ja nicht - weil dann sonst ohne JS das Element gar nicht angezeigt werden würde.
Mit Javascript kannst du dann via style-Objekt an den CSS-Eigenschaften rumschrauben, wie es dir beliebt.
Harrie:
Und genau das machst du nach dem fertig Laden der Seite erst mal umgekehrt:
CSS: Element sichtbar
per JS: direkt nach dem Laden der Seite Element unsichtbar machen
später irgendwann per JS als Reaktion auf irgendein anderes Ereignis: Element wieder sichtbar machen
gruß,
wahsaga
Tag wahsaga.
Dann setze das DIV von Haus aus (mit CSS) auf display:none.
Eben das will er ja nicht - weil dann sonst ohne JS das Element gar nicht angezeigt werden würde.
Jaja, wer lesen kann, ist klar im Vorteil :-)
Siechfred
Dann setze das DIV von Haus aus (mit CSS) auf display:none.
Eben das will er ja nicht - weil dann sonst ohne JS das Element gar nicht angezeigt werden würde.Jaja, wer lesen kann, ist klar im Vorteil :-)
Wie ist das nun zu verstehen? Hattest Du Dich verlesen, oder wird display:none ohne JS etwa nicht ausgeführt, so dass das div angezeigt wird???
@wahsaga: Spezifisches Problem bei mir ist an Deinem vorherigem Vorschlag(hatte das schon probiert), dass ich mit dieser Geschichte ein Problem im Opera beheben möchte. Und zwar zentriere ich per JS ein div(in dem meine Seite liegt), was soweit auch klappt. Wenn ich allerdings einen Link aufrufe, erscheint die Seite zunächst für den Bruchteil einer Sekunde an der Position (0,0), bevor sie zentriert wird. Dieses kurze Anzeigen möchte ich verhindern.
Hatte das Problem schon halb gelöst, indem ich das div versteckt habe und es per JS wieder sichtbar machte, allerdings sah man ohne JS dann gar nichts...krasser Denkfehler von mir... Wenn ich erst im JS das div verstecke, wird die Seite dennoch kurz bei (0,0) dargestellt...
Daher wollte ich wissen, ob es die Möglichkeit gibt, bei der Definition der Tag-Eigenschaften zwischen aktiviertem und nicht aktiviertem JS zu unterscheinden...
Nachtrag:
Das Problem liegt nicht im Opera, alle Browser positionieren die Seite vor Aufruf des body-tags bei (0,0), aber nur der Opera (und der IE meines Chefs) ist es sichtbar, so das ein kurzes 'Zucken' von oben links in die Mitte sichtbar ist...
Jaja, wer lesen kann, ist klar im Vorteil :-)
Wie ist das nun zu verstehen? Hattest Du Dich verlesen, oder wird display:none ohne JS etwa nicht ausgeführt, so dass das div angezeigt wird???
Ich hatte dich falsch verstanden.
Und zwar zentriere ich per JS ein div(in dem meine Seite liegt), was soweit auch klappt. Wenn ich allerdings einen Link aufrufe, erscheint die Seite zunächst für den Bruchteil einer Sekunde an der Position (0,0), bevor sie zentriert wird. Dieses kurze Anzeigen möchte ich verhindern.
Dann dürfte dich vielleicht dieser Thread interessieren.
Daher wollte ich wissen, ob es die Möglichkeit gibt, bei der Definition der Tag-Eigenschaften zwischen aktiviertem und nicht aktiviertem JS zu unterscheinden...
Das geht nicht, du kannst nur so vorgehen, wie bereits angedeutet. Btw, warum zentrierst du mit JS? Zumindest horizontales Zentrieren funktioniert, indem du margin-left bzw. margin-right den Wert "auto" zuweist. Und mit entsprechenden Werten für margin-top bzw. margin-bottom kannst du durchaus optisch vorgaukeln, dass dein Inhalts-DIV auch vertikal zentriert ist.
Siechfred
»»Zumindest horizontales Zentrieren funktioniert, indem du margin-left bzw. margin-right den Wert "auto" zuweist. Und mit entsprechenden Werten für margin-top bzw. margin-bottom kannst du durchaus optisch vorgaukeln, dass dein Inhalts-DIV auch vertikal zentriert ist.
Das mit dem horizontalen Zentrieren klappt in der Tat super. Mit der vertikalen Zentrierung besteht bei einem kleineren Viewport aber das Problem, dass oben und unten etwas abgeschnitten wird, wenn ich mich nicht irre...daher wollte ich das mit JS lösen...
Werde nun aber wohl ne Kombinantion aus css & JS machen....
Aber erstmal in den vorgeschlagenen Thread anschauen... ;)