Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PROBLEM Z MENU W JQUERY
Forum PHP.pl > Forum > Po stronie przeglądarki
Artu123
Witam!

Napisałem swój skrypt menu w jQuery .

link do menu

Gdy najedziemy na kilka linków w menu to taki bałagan się robi . Da się jakoś zrobić , że jak najedziemy na 5 linków , to nie że po kolei zmienia pozycje to podświetlenie i szerokość, tylko od razu zmienia pozycje i szerokość do ostatniego najechanego linku ?

Kod
    $(document).ready(function() {
    
        $("#LinkiDojQuery ul").css("display", "none");
        $("#LinkiDojQuery ul").eq(0).css("display", "block");
            
        $("#HeaderMenuLi a").hover(function(){
        
            var element_index = $("#HeaderMenuLi a").index(this);
                        
            if(element_index == "0") {
                var przejscie = "10px";
                var szerokosc = "108px";
            }
            if(element_index == "1") {
                var przejscie = "128px";
                var szerokosc = "100px";
            }
            if(element_index == "2") {
                var przejscie = "236px";
                var szerokosc = "100px";
            }
            if(element_index == "3") {
                var przejscie = "346px";
                var szerokosc = "108px";
            }
            if(element_index == "4") {
                var przejscie = "465px";
                var szerokosc = "70px";
            }
            if(element_index == "5") {
                var przejscie = "545px";
                var szerokosc = "77px";
            }
            if(element_index == "6") {
                var przejscie = "631px";
                var szerokosc = "64px";
            }
            
            $("#Podswietlenie").animate({marginLeft: przejscie});
            $("#Podswietlenie").animate({width: szerokosc});
            
            $("#LinkiDojQuery ul").css("display", "none");
            $("#LinkiDojQuery ul").css("opacity", ".0");
            $("#LinkiDojQuery ul").eq(element_index).css("display", "block");
            $("#LinkiDojQuery ul").eq(element_index).animate({opacity: "1.0"});
            
        });
    });


to kod jQuery .
vokiel
Tak się dzieje, gdy przesuwasz kursor nad wszystkimi elementami po drodze, jeśli zjedziesz na dół, przejedziesz na wybrany element i wjedziesz znów nad menu tak się nie dzieje, zatem sprawa wygląda tak, że przy hover aktywowana jest funkcja dla każdego z elementu po kolei.

Czyli trzeba poszukać rozwiązania na jakieś buforowanie tego hovera, albo zatrzymywanie poprzednio uruchomionych akcji dla poprzedniego hovera (coś jakby funcja stop())
pawkow
http://www.pengoworks.com/workshop/jquery/stop_bug_fix.htm

Powinno pomóc winksmiley.jpg
Artu123
Kod
            $("#Podswietlenie").stop();
                        
            $("#Podswietlenie").animate({marginLeft: przejscie});
            $("#Podswietlenie").animate({width: szerokosc});


Nadal nie działa a powinno .
vokiel
Może tak:
  1. <?php
  2. $("#Podswietlenie").stop().animate({marginLeft: przejscie,width: szerokosc});
  3. ?>


Tak w ogóle to używaj chains:
  1. <?php
  2. $("#LinkiDojQuery ul").eq(element_index).css({display: "block"}).animate({opacity: "1.0"});
  3. $("#LinkiDojQuery ul").css({display: "none", opacity: ".0"});
  4. ?>
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.