layer automatisch ausblenden
Iuna
- javascript
Liebe Leute,
Ich bin auf der Suche nach einem Script, dass einen Layer automatisch nach ein paar Sekunden ausblendet und nur die darunterliegende Seite zu sehen ist.
Ich habe hier auf selfhtml das gefunden - das steuert auch zeitlich, aber halt keinen Layer. Kann man dieses script auch für einen layer verwenden? und wenn ja - kann mir irgendjemand sagen wie?
var aktiv = window.setInterval("Farbe()", 1000);
var i = 0, farbe = 1;
function Farbe () {
if (farbe == 1) {
document.bgColor = "yellow";
farbe = 2;
} else {
document.bgColor = "aqua";
farbe = 1;
}
i = i + 1;
if (i >= 10)
window.clearInterval(aktiv);
}
Für eure Hilfe wäre ich sehr dankbar!
Liebe Grüße
Daniela
Liebe Leute,
Moin!
Das Script kann natuerlich auch die <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#display@title=Anzeige von Elementen> steuern.
Mal sone Frage nebenbei an alle: Ich les immer wieder "Layer". Das Zeug ist doch mit Netscape ausgestorben, oder nicht? Meist sind doch schlicht und einfach Elemente gemeint, die man positioniert oder ein-/ausblendet. Hauptsaechlich ist ein div betroffen. Warum nennt man sowas immer noch Layer?
Warum nennt man sowas immer noch Layer?
Vermutlich aus demselben Grund, aus dem man Elemente oder Attribute jeglicher Art als "Tag" bezeichnet.
Das Script kann natuerlich auch die <http://de.selfhtml.org/css/eigenschaften/positionierung.htm#display@title=Anzeige von Elementen> steuern.
Das ich mittels css eine Ebene ausgeblendet lassen kann, weiß ich.
Die "Ebene" (Div-Layer) soll am Anfang bei Aufruf der Seite da sein und nach 3 Sekunden soll die Ebene ausgeblendet werden.
Das muss ich ihm ja mittels Javascript sagen.
Der Codeschnipsel, den ich am Anfang gepostet habe, hat ja auch nur eine Ebene.
LG, Daniela
Hi!
Hattest Du jetzt noch eine Frage? Oder Hast Du Dein Prolem geloest? Es kommt irgendwie nicht rueber, ob die Due Farbmanipulation mit Displaymanipulation ersetzt hast, oder nicht.
Besser fuer deinen Plan waere aber wohl die Verwendung von http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=setTimeout(). Damit kannst Du am einfachsten einmalig Code zeitgesteuert aufrufen.
Hallo,
Hattest Du jetzt noch eine Frage? Oder Hast Du Dein Prolem geloest? Es kommt irgendwie nicht rueber, ob die Due Farbmanipulation mit Displaymanipulation ersetzt hast, oder nicht.
ok, irgendwie bin ich das Ganze wohl ein bißchen zu konfus angegangen.
Ja - ich hatte noch eine Frage.
Kann ich den Schnipsel verwenden?
function FadeContent(d) {
if (d.length <1 ) {return;}
start = setTimeout("action('"+d+"')", 1000);
}
Was muss ich meinem body sagen? (danke auch für den hinweis - hab ich verschwitzt) und was muss ich meiner Ebene, die sozusagen gleich am Anfang da ist und die nach 3 Sekunden ausgeblendet werden soll, sagen, damit das so funktioniert.
Das Beispiel mit den Farben war kein gutes Beispiel - bitte einfach vergessen. Dachte man könnte das anpassen. Scheint mir aber jetzt so gesehen gar nicht geeignet
Vielen Dank für die Geduld!
Besser fuer deinen Plan waere aber wohl die Verwendung von http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout@title=setTimeout(). Damit kannst Du am einfachsten einmalig Code zeitgesteuert aufrufen.
Kann ich das
window.setTimeout("Hinweis()", 10000);
auch ohne dem
var x = confirm("Sie sind jetzt schon 10 Sekunden auf dieser Seite. Fortfahren?");
if (x == false)
top.close();
verwenden? Das erscheint ja erst nach diesen 10 Sekunden bei dem Beispiel.
Und wenn ja - die gleichen Fragen wie oben!
Sorry, ich versuche wirklich selber draufzukommen indem ich herum probiere, aber irgendwie glückt es nicht
LG, Daniela
Hallo Iuna,
Sorry, ich versuche wirklich selber draufzukommen indem ich herum probiere, aber irgendwie glückt es nicht
vieleicht solltest du mal folgendes lesen:
http://de.selfhtml.org/javascript/objekte/event.htm (nach onload suchen)
http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout
http://de.selfhtml.org/javascript/objekte/style.htm
Damit solltest du in der Lage sein, nach dem Laden der Seite einen Timeout abzusetzen, der die Displayeigenschaft eines Elemlements auf "none" setzt.
Gruß, Jürgen
Hallo Jürgen,
danke erstmal für die Linktipps!
vieleicht solltest du mal folgendes lesen:
http://de.selfhtml.org/javascript/objekte/event.htm (nach onload suchen)
Sollte man meinen ;o)
Bezieht sich auf ein Bild - ich habe aber kein Bild sondern ein DIV. Kann ich das umwandeln?
Brauche natürlich auch keine Klickfunktion. Soll einfach nur da sein das DIV. Maximal dass wenn man früher dorthin klickt als das es verschwindet - es mit dem klich verschwindet.
http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout
Da weiß ich nicht. Kann ich einfach dieses Abfragefenster weglassen?
Da komme ich auch nicht weiter. Hab jetzt einfach mal versucht dem div ein display none zuzuordnen. Allerdinsg auch hier - die zuordnung erfolg über einen Link, den ich ja eigentlich nicht habe.Kann ja schlecht um ein ganzes DIV einen Link setzen.
Damit solltest du in der Lage sein, nach dem Laden der Seite einen Timeout abzusetzen, der die Displayeigenschaft eines Elemlements auf "none" setzt.
Bin also leider noch zu keinem Eregebniss gekommen (schlauer bin ich zwar schon - aber nicht so dass es mir geholfen hätte) :o(
Liebe Grüße
Daniela
Hi,
http://de.selfhtml.org/javascript/objekte/event.htm (nach onload suchen)
Bezieht sich auf ein Bild
Nein, tut's nicht.
Es bezieht sich darauf, wann das Dokument und alle externen Ressourcen fertig geladen sind.
http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout
Da weiß ich nicht. Kann ich einfach dieses Abfragefenster weglassen?
Natürlich. Es geht doch nur um den zeitverzögerten Aufruf von irgendwelchem Code, nicht um den Code an sich.
Da komme ich auch nicht weiter.
In wie fern nicht?
Bitte beschreibe mal nachvollziehbar, wo du Verständnisprobleme hast.
MfG ChrisB
Hi,
http://de.selfhtml.org/javascript/objekte/event.htm (nach onload suchen)
Bezieht sich auf ein Bild
Nein, tut's nicht.
Es bezieht sich darauf, wann das Dokument und alle externen Ressourcen fertig geladen sind.
ok, da geht es darum, dass es ein Ereignis geben soll, wenn man auf das Bild klickt.Ich verstehe aber nicht inwieweit mir das mit meinem "DIV", das ich automatisch ausgeblendet haben möchte helfen kann. Sorry
http://de.selfhtml.org/javascript/objekte/window.htm#set_timeout
Da weiß ich nicht. Kann ich einfach dieses Abfragefenster weglassen?
Natürlich. Es geht doch nur um den zeitverzögerten Aufruf von irgendwelchem Code, nicht um den Code an sich.
OK, da hast du natürlich recht.
Die Zeitverzögerung die ich brauch ist das Ausblenden meines Divs
Nur welchen Hinweis gebe ich ihm, wenn ich eigentlich "NUR" will, dass dieser layer verschwindet? oder lasse ich das "Hinweis()"einfach weg?
window.setTimeout("Hinweis()", 10000);
Da komme ich auch nicht weiter.
In wie fern nicht?
Bitte beschreibe mal nachvollziehbar, wo du Verständnisprobleme hast.
Tut leid, wenn es nicht verständlich war.
Mir ist nicht ganz klar wie mir diese Zuordnung beim Ausblenden behilflich sein kann. OK - ich kann meinem DIV die css-Anwesiung display: none geben, aber hier wird das Css mittels einem Link und der darin enthaltenen javascriptzeile aktiviert.
<a href="javascript:setCSS()">Stylesheet-Power!</a>
Ich habe aber keinen Link um mein DIV und wenn ich direkt reinschreibe, blendet er es mir gleich zu beginn aus. Logischerweise.
War das jetzt verständlich??
Ich seh den Wald vor lauter Bäumen schon nicht mehr
Liebe Grüße
Daniela
Hi,
ok, da geht es darum, dass es ein Ereignis geben soll, wenn man auf das Bild klickt.Ich verstehe aber nicht inwieweit mir das mit meinem "DIV", das ich automatisch ausgeblendet haben möchte helfen kann. Sorry
Einzig und allein der Part, der dafür sorgt, dass eine Funktion ausgeführt werden soll, wenn das Dokument fertig geladen ist, ist interessant.
Die Zeitverzögerung die ich brauch ist das Ausblenden meines Divs
Nur welchen Hinweis gebe ich ihm, wenn ich eigentlich "NUR" will, dass dieser layer verschwindet? oder lasse ich das "Hinweis()"einfach weg?
Nein - stattdessen gibst du die Funktion an, die dann ausgeführt werden soll, wenn die angegebene Zeitspanne verstrichen ist. Bei dir ist das das Ausblenden des DIV-Elements.
Ich habe aber keinen Link um mein DIV und wenn ich direkt reinschreibe, blendet er es mir gleich zu beginn aus. Logischerweise.
Eben, und deshalb machst du es nicht sofort, sondern zeitverzögert.
MfG ChrisB
Hi,
ok, da geht es darum, dass es ein Ereignis geben soll, wenn man auf das Bild klickt.Ich verstehe aber nicht inwieweit mir das mit meinem "DIV", das ich automatisch ausgeblendet haben möchte helfen kann. Sorry
Einzig und allein der Part, der dafür sorgt, dass eine Funktion ausgeführt werden soll, wenn das Dokument fertig geladen ist, ist interessant.
Die Zeitverzögerung die ich brauch ist das Ausblenden meines Divs
Nur welchen Hinweis gebe ich ihm, wenn ich eigentlich "NUR" will, dass dieser layer verschwindet? oder lasse ich das "Hinweis()"einfach weg?Nein - stattdessen gibst du die Funktion an, die dann ausgeführt werden soll, wenn die angegebene Zeitspanne verstrichen ist. Bei dir ist das das Ausblenden des DIV-Elements.
Ich habe aber keinen Link um mein DIV und wenn ich direkt reinschreibe, blendet er es mir gleich zu beginn aus. Logischerweise.
Eben, und deshalb machst du es nicht sofort, sondern zeitverzögert.
Da ist jetzt endlich der Groschen bei mir gefallen.
Das hast du sehr gut erklärt! Wirklich.
Bei mir schaut es jetzt so aus - keine Ahnung ob du es so gemeint hast - aber es funktioniert fast alles so wie ich möchte:
function ausblenden () {
window.setTimeout("setCSS()", 50);
}
function setCSS () {
for (var i = 0; i < document.getElementsByTagName("div").length; i++) {
document.getElementsByTagName("div")[i].style.border = "solid red 10px";
}
}
window.onload = ausblenden;
Er macht so wie ich es ihm sage alle DIVs rot umrandet. Zum Testen mal so definiert. Allerdings möchte ich ja ein ganz bestimmtes DIV ansprechen. Wenn ich statt dem div - div id='flashlayer' schreibe funktioniert es nicht mehr, auch nicht wenn ich div#flashlayer schreibe.
und nur DIV schreiben bringt nicht den gewünschen Effekt - da ja alle rot werden ;o) (Die schämen sich für mich ;o)
Kann ich es irgendwie anders definieren, so dass es funktioniert?
Besten Dank!
Liebe Grüße
Daniela
Hallo Iuna,
hast du schon http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=document.getElementById ausprobiert?
Gruß, Jürgen
Hallo Jürgen
hast du schon http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=document.getElementById ausprobiert?
Das war sozusagen noch das Pünktchen auf dem i!
Vielen, vielen herzlichen Dank allen die mich da so super unterstützt haben.
Das war vielleicht eine schwere Geburt - aber jetzt funktioniert es und ich bin ich dem Javascript einen Schritt näher gekommen!
Nochmals vielen Dank
Liebe Grüße
Daniela
Moin!
ok, da geht es darum, dass es ein Ereignis geben soll, wenn man auf das Bild klickt.Ich verstehe aber nicht inwieweit mir das mit meinem "DIV", das ich automatisch ausgeblendet haben möchte helfen kann. Sorry
Nein. Du sollst das ja cuh cnicht bei einem klick machen sondern in einem Script am Ende der Seite oder "onload":
window.onload = function()
{
/*Hier den Code der ausgefuehrt werden soll, wenn die Seite geladen ist*/
}
Das kannst Du einfach in dein Javascript einfuegen. zwischen die Klammern kannst Du beliebigen gewuenschten Code schreiben. In Deinem Fall macht es Sinn das TimeOut zu notieren. Hier starten quasi deine 3 Sekunden.
Die Zeitverzögerung die ich brauch ist das Ausblenden meines Divs
Nur welchen Hinweis gebe ich ihm, wenn ich eigentlich "NUR" will, dass dieser layer verschwindet? oder lasse ich das "Hinweis()"einfach weg?
"Hinweis()" ist eine Funktion. Du kannt nun also eine Funktion angeben, die macht, was Du willst, oder beliebigen Code. Wenn Du also eine Funktion hast, die Dein Element verschwinden laesst, kannst Du die dort einfuegen.
Mir ist nicht ganz klar wie mir diese Zuordnung beim Ausblenden behilflich sein kann. OK - ich kann meinem DIV die css-Anwesiung display: none geben, aber hier wird das Css mittels einem Link und der darin enthaltenen javascriptzeile aktiviert.
<a href="javascript:setCSS()">Stylesheet-Power!</a>
Ich habe aber keinen Link um mein DIV und wenn ich direkt reinschreibe, blendet er es mir gleich zu beginn aus. Logischerweise.
Natuerlich. Du brauchst einen Eventhandler, der nach dem Laden des Dokuments ausgeloest (getriggert) wird oder startest das Script am Ende des Dokuments, Wenn sicher alles vorhanden ist. (s.o.) Damit das nicht sofort passiert brauchst Du das Timeout.
<a href="javascript:window.setTimeout('setCSS()',2000)">Stylesheet-Power!</a>
Ich seh den Wald vor lauter Bäumen schon nicht mehr
Doch doch. Du hast schon alles. Du musst es nur zusammenfuegen.
Hi!
Kann ich den Schnipsel verwenden?
function FadeContent(d) {
if (d.length <1 ) {return;}
start = setTimeout("action('"+d+"')", 1000);
}
Kommt drauf an. Dieses Script ueberprueft bei Aufruf, ob der uebergebene Parameter eine laenge kleiner 1 hat. Falls nicht wird 1 Sekunde spaeter die Funktion action() auf und uebergibt den Parameter d.
Macht so spontan keinen Sinn.
> Was muss ich meinem body sagen? (danke auch für den hinweis - hab ich verschwitzt) und was muss ich meiner Ebene, die sozusagen gleich am Anfang da ist und die nach 3 Sekunden ausgeblendet werden soll, sagen, damit das so funktioniert.
Das kommt drauf an, was Du genau willst. An und ausschalten geht einfach mit display.
> Das Beispiel mit den Farben war kein gutes Beispiel - bitte einfach vergessen. Dachte man könnte das anpassen. Scheint mir aber jetzt so gesehen gar nicht geeignet
Ist kein so schlechtes Beispiel, wenn Du nicht einfach ein Element ein-/ausschalten willst, sondern stufenweise blenden. Das kann man so direkt nciht uebernehmen, aber da ist ein setInterval() brauchbar. Dein Beispiel springt einfach 10x zwischen den beiden Farben hin und her. Man kann mit dem Zaehler natuerlich auch Transparanzen oder Farbabstufungen setzen. Evtl. Brauchst Du also beide Funktionen. Mit setTimeout loest Du (nach 3 Sekunden) die Funktion zum Faden aus, die selbst setInterval() nutzt, um z.B. jede zehntel Sekunde einen Wert zu veraendern, bis ein bestimmtert Endwert erreicht ist.
> Kann ich das
> `window.setTimeout("Hinweis()", 10000);`{:.language-javascript}
>
>
> auch ohne dem
>
> ~~~javascript
var x = confirm("Sie sind jetzt schon 10 Sekunden auf dieser Seite. Fortfahren?");
> if (x == false)
> top.close();
>
verwenden? Das erscheint ja erst nach diesen 10 Sekunden bei dem Beispiel.
Ja, natuerlich.
Fangen wir mal ganz vorne an:
Du hast ein Element.
Dieses Element ist zu Beginn sichtbar.
Nach 3 Sekunden soll dieses Element was genau tun? einfach verschwinden?
Hast Du schon Code der die entsprechende Eigenschaft deines Elements aendert? (wie Element.display="none")
Dann sehen wir weiter.
Hab folgendes gefunden
function FadeContent(d) {
if (d.length <1 ) {return;}
start = setTimeout("action('"+d+"')", 1000);
Nur was sage ich meinem Div wenn es weder ein onMouseOver noch onMouseOut ist?
Besten Dank ;o)
LG, Daniela
Hallo Iuna,
Nur was sage ich meinem Div wenn es weder ein onMouseOver noch onMouseOut ist?
dein body, bzw. der deiner Seite, hat aber ein onload.
Gruß, Jürgen