Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Menu w Jqwery
#1
Witam!

Mam taką sytuacje http://jsfiddle.net/nvn7V/ . Jak spojrzymy na efekt skryptu to można wydedukować jego działanie - a mianowicie na początku next wybiera potomków, slideDown pokazuje elementy, następnie pauza na 4s, i tu jak nie wskażemy kolejnego elementu to wszystko stoi, po wskazaniu kolejnego elementu next zwalnia kolejke (jak mi się zdaje) i siblings za pomocą slideUp() ukrywa elementy menu - prosze mi powiedzieć czy dobrze myślę - dlaczego slideUp nie ukrywa elementów menu jak nie wskarzemy kolejnego elementu.

Z góry dzięki za odpowiedź,
Odpowiedz
#2
(21-06-2013, 20:13)Witek76 napisał(a): (...)dlaczego slideUp nie ukrywa elementów menu jak nie wskarzemy kolejnego elementu.

Pewnie dlatego:
Kod:
$("div#menu_1").mouseover

Zdarzenie wykonywane jest tylko po najechaniu na #menu_1 ... Musiałbyś dorzucić do tego jeszcze .mouseout Wink

...albo np. tak:

Kod:
$(function() {
$('div.menu_1').hover(function(){ $(this).next("div.menu_2").slideDown(1000).delay(4000).siblings("div.menu_2").slideUp(1000);
}, function(){
        $("div.menu_2").slideUp(1000);
    });
});

ID zamieniłem na klasy ponieważ w jednym dokumencie może być tylko jedno id o danej wartości. Inna sprawa że całe to menu powinno być oparte ul li ...
Odpowiedz
#3
To powinno być wykonane na samym css.
A dokładniej:
Kod:
.menu_1 ul {max-height:0; transition:max-height 0.4s; overflow:hidden;} /* ul = podmenu */
.menu_1 a:focus + ul {max-height:99999px;}

Powyższy przykład można by zmodyfikować i wykorzystać checkboxa i dodatkowy skrypt dla starszych przeglądarek.
Teraz jest bardzo źle bo po pewnym czasie samo się zsuwa i przez to utrudnia nawigację.
Odpowiedz
#4
Cytat: Zdarzenie wykonywane jest tylko po najechaniu na #menu_1 ...
ok Wszystko fajnie tylko wciąż nie wiem dlaczego $(this).next("div#menu_2").slideDown(1000).delay(4000) TU SIE ZATRZYMUJE (tak funkcja next działa ?- podobnie jak ma to miejsce w przypadku function(next)? (chyba nie :/) a może jest tak ,że po mouseover na inny element menu jest zwalniana kolejka i wtedy uruchamia się ---> .siblings("div#menu_2").slideUp(1000); hmm...

pozdrawiam,
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  problem z tłem pod menu loose 1 3,157 06-07-2017, 20:00
Ostatni post: loose
  problem z menu p410 10 10,350 18-06-2017, 18:34
Ostatni post: lemans88
  CSS dla menu i problem z selektorami neferith 4 5,264 30-06-2016, 00:58
Ostatni post: Brain23
  MENU - poważny problem wysokości! asus 0 2,534 05-12-2014, 23:34
Ostatni post: asus
  Trzypoziomowe menu - problem rejcz 3 5,666 25-01-2014, 17:16
Ostatni post: Kartofelek

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl