Iuna: layer automatisch ausblenden

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

  1. 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?

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
    1. Warum nennt man sowas immer noch Layer?

      Vermutlich aus demselben Grund, aus dem man Elemente oder Attribute jeglicher Art als "Tag" bezeichnet.

    2. 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

      1. 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.

        --
        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
              - T. Pratchett
        1. 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

          1. 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

            1. 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?

              http://de.selfhtml.org/javascript/objekte/style.htm

              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

              1. 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.

                http://de.selfhtml.org/javascript/objekte/style.htm

                Da komme ich auch nicht weiter.

                In wie fern nicht?

                Bitte beschreibe mal nachvollziehbar, wo du Verständnisprobleme hast.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                1. 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);
                  

                  http://de.selfhtml.org/javascript/objekte/style.htm

                  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

                  1. 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

                    --
                    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                    1. 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

                        1. 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

                  2. 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.

                    --
                    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                          - T. Pratchett
          2. 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.

            --
            "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                  - T. Pratchett
    3. 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

      1. 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