Div-Layer soll sich nach x Sekunden schließen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Div-Layer soll sich nach x Sekunden schließen

    Hallo allerseits!

    Ich hab hier ein kleines JS-Script bei dem ich nicht weiterkomme. Ich öffne über das onload-Attribut im Body ein herkömliches Layer-Popup:

    Quellcode

    1. #popup {
    2. position: absolute;
    3. visibility: hidden;
    4. width: 427px;
    5. height: 182px;
    6. left: 220px;
    7. top: -100px;
    8. background-color: #ccc;
    9. border: 1px solid #000;
    10. padding: 10px;
    11. background:url('images/popup_background.jpg');
    12. background-repeat:repeat-x;
    13. }
    Alles anzeigen


    Quellcode

    1. function setVisible(obj)
    2. {
    3. obj = document.getElementById(obj);
    4. obj.style.visibility = (obj.style.visibility == 'visible') ? 'hidden' : 'visible';
    5. obj = document.setTimeout('obj.style.visibility == "hidden"',5000);
    6. }


    Quellcode

    1. <div id="popup">
    2. Inhalt
    3. </div>


    Öffnen tut sich das Popup, nur, dass es sich nach ein paar Sekunden wieder von alleine schließt - das will noch nicht so recht....
    Was JS angeht, bin ich ehrlich gesagt blutiger Anfänger... darum würde ich mich um Unterstützung sehr freuen :)

    //////// EDIT
    Hat sich geklärt! :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von allaniay ()

  • kannst du die Lösung bitte noch posten?
    ich nehme an, es lag nur an der falsch Zuweisung?
    obj.style.visibility == "hidden" statt obj.style.visibility = "hidden"

    ich würde statt mit der visibility empfehlen mit display zu arbeiten. Da visibility das Objekt nicht wirklich entfernt. Man kann also auf keine Elemente dahinter klicken.

    Quellcode

    1. function setblock(obj)
    2. {
    3. obj = document.getElementById(obj);
    4. obj.style.display = (obj.style.display != 'none') ? 'none' : 'block';
    5. obj = document.setTimeout('obj.style.display = "none"; ',5000);
    6. }