Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js]Rozwijane menu
Forum PHP.pl > Forum > Przedszkole
Glarden
Hej ho!
Mam taki oto kod:
  1. ID=setTimeout("ukryj()", 1000);
  2. function ukryj() {
  3. div = document.getElementById("lista");
  4. div.style.visibility = "hidden";
  5. }
  6.  
  7. function pokaz() {
  8. div = document.getElementById("lista");
  9. div.style.visibility = "visible";
  10. }
  11. <a href="#" onMouseOver="javascript:pokaz();" onMouseOut="javascript:ukryj();">Hejmejowie</a>
  12. <div onMouseOver="javascript:pokaz();" onMouseOut="javascript:ukryj();" id="lista">
  13. <li><a href="#">Tatucho</a></li>
  14. <li><a href="#">Mamucha</a></li>
  15. <li><a href="#">Martucha</a></li>
  16. <li><a href="#">Tomek</a></li>
  17. <li><a href="#">Olucha</a></li>
  18. </div>


Chodzi tu o to, żeby po najechaniu na odnośnik rozwijała się lista innych odnośników. Wszystko działa jak należy, ale chciałbym zrobić coś takiego, że po zjechaniu z odnośnika lista odnośników znika dopiero po sekundzie, a nie od razu.
Powinno być coś z setTimeOut, tak? Próbowałem, ale nie udawało się...
b_chmura
Kod
<script>
    function ukryj()
    {
        div = document.getElementById("lista");
        div.style.visibility = "hidden";
    }
    function pokaz()
    {
        div = document.getElementById("lista");
        div.style.visibility = "visible";
    }
</script>
<body onload="javascript: ukryj()">
    <a href="#" onMouseOver="javascript: pokaz();">Hejmejowie</a>
    <div onMouseOut="javascript: setTimeout('ukryj()', 1000);" id="lista">
        <li><a href="#">Tatucho</a></li>
        <li><a href="#">Mamucha</a></li>
        <li><a href="#">Martucha</a></li>
        <li><a href="#">Tomek</a></li>
        <li><a href="#">Olucha</a></li>
    </div>
</body>
Glarden
Działa! Dzięki.

Tylko teraz mam inny problem. Jest ten sam skrypt js, ale chciałbym, żeby pojawiające się menu było daleko od odnośnika, żeby go "nie dotykało". Ustawiłem to sobie w css, ale teraz menu znika zanim myszka zdąży tam dojechać.
Nie mam pojęcia, jak to naprawić.
Możecie to zobaczyć tu: http://sokoly.ddl2.pl/eksperymentus/szablon/. Przy odnośniku download.
b_chmura
a gdzie setTimeout()?

Kod
onMouseOut="javascript: setTimeout('ukryj()', 1000);"
Glarden
Zrobiłem, ale teraz jest tak, że nadążam najechać na menu, ale po sekundzie od zjechania z odnośnika menu i tak znika, bo tak jest zrobiona funkcja.
Edit: dobra, nie chciało mi się myśleć i zrobiłem na kliknięcie, a nie na najechanie. Nie wygląda tak źle.
Można zamknąć
b_chmura
trochę źle do tego podchodzimy.

Kod
<script>
    function ukryj(id)
    {
        div = document.getElementById(id);
        div.style.display = "none";
    }
    function pokaz(id)
    {
        div = document.getElementById(id);
        div.style.display = "";
    }
</script>
<body onload="ukryj('menu1');">
<div onMouseOver="pokaz('menu1');" onMouseOut="setTimeout('ukryj(\'menu1\')', 1000);">
    <a href="#">Hejmejowie</a>
    <div id="menu1">
        <a href="#">Tatucho</a><br />
        <a href="#">Mamucha</a><br />
        <a href="#">Martucha</a><br />
        <a href="#">Tomek</a><br />
        <a href="#">Olucha</a><br />
    </div>
</div>
</body>


ee, testowałem, nie działa.
Zaraz coś wykombinuje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.