Styles ändern ehe Objekte angezeigt werden
Kai
- javascript
Hallo,
ich grübele an einem Problem und befürchte, dass die
Lösung mit CSS/Javascript nicht möglich ist:
Ich habe ein unsichtbares Div (Visibility:hidden), welches
durch Javascript beim Überfahren mit der Maus sichtbar
gemacht wird und beim verlassen wieder unsichtbar.
Im Moment ist die Voreinstellung im style-sheet "visible"
und wird durch ein "onload" in <body> auf "hidden" gestellt.
Somit sehe ich natürlich kurz den Inhalt, bevor das Div
ausblendet.
Wenn ich aber "hidden" als Voreinstellung im style-sheet nutze,
bleibt das Div für immer verborgen, wenn Javascript deaktiviert ist.
Nun die Frage:
Gibt es eine Möglichkeit, die styles per Javascript zu modifizieren,
ehe das betreffende Element dargestellt wird (befürchte: nein)?
Ein anderer Gedanke wäre, dass Div in einem <noscript>-Bereich
unterzubringen und alternativ mit Javascript zu erzeugen
und die Sichtbarkeit über verschiedene Klassen zu regeln.
Würde das funktionieren?
Danke und mfG, Kai
Nun die Frage:
Gibt es eine Möglichkeit, die styles per Javascript zu modifizieren,
ehe das betreffende Element dargestellt wird (befürchte: nein)?
Im Prinzip nein, aber du kannst auf den Bereich hinter dem Quellcode zugreifen.
Also:
<div ID="wasweissich">
</div>
<script type="text/javascript">
document.getElementById('wasweissich').style.visibility = 'hidden';
</script>
Kann man vielleicht noch verfeinern, sollte aber eigentlich immer gehen.
Struppi.
Hi,
Wenn ich aber "hidden" als Voreinstellung im style-sheet nutze,
bleibt das Div für immer verborgen, wenn Javascript deaktiviert ist.
Gibt es eine Möglichkeit, die styles per Javascript zu modifizieren,
ehe das betreffende Element dargestellt wird (befürchte: nein)?
Ja. Neben Struppis Hinweis (das Script kann auch bereits schon im Element selbst stehen - also direkt hinter dem öffnenenden Tag) kannst Du auch das Stylesheet ändern (Coding: CSS-Regeln (& Stylesheets) auslesen & ändern), ergänzen(Coding: CSS-Stylesheets & -Regeln ergänzen) oder einfach auch mit write() ein neues erzeugen.
Gruß, Cybaer