Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] scrollTop animate - menu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
koryx
Witam
Chciałem zrobić menu, które zmienia swój wygląd w zależności od pozycji strony. Gdy dam poniższy kod wszystko działa ok.
Kod
$(document).ready(function() {
    $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
                   $("#menu-box").css("background-color", "rgba(0,0,0,0.5)");
        } else {
                   $("#menu-box").css("background-color", "");
        }
    });

});

jednak chciałbym wprowadzić małą animację, zrobiłem więc tak:
Kod
$(document).ready(function() {
    $(window).scroll(function(){
        if ($(this).scrollTop() > 100) {
                 $("#menu-box").css("background-color", "rgba(0,0,0,0.5)");
                 $("#menu-box").animate({ top: "0px" },  { duration:300 });
        } else {
                 $("#menu-box").css("background-color", "");
                $("#menu-box").animate({ top: "20px" },  { duration:300 });
        }
    });

});

Pod chrome działa to w miarę poprawnie (występuje lekkie opóźnienie animacji) ale w firefoxie opóźnienie animacji robi się bardzo duże (nawet kilka sekund). Próbowałem zmienić $(window) na $('html', body') ale to nie rozwązywało problemu.
kafowi
Nie widzę żadnych opóźnień:
- http://jsfiddle.net/kafowi/7ptcs8rn/
koryx
https://jsfiddle.net/7ptcs8rn/1/

dodalem styl tak jak jest u mnie:
Kod
<div id="menu-box" style="background-color:green; position:fixed; top:20px; z-index:1;">

i wg tego co widze jest opoznienie animacji (nie zmiany koloru tla a pzesuniecia diva)
trueblue
Przekazałeś parametr duration w obiekcie, a co za tym idzie obowiązuje wartość domyślna dla parametru queue.
Twoja animacja przy każdym przesunięciu scrolla "kolejkuje się". Ustaw wartość [i]queue[/i] na false i będzie ok.
kafowi
- https://jsfiddle.net/kafowi/7ptcs8rn/3/
koryx
Oba sposoby (queue: false lub switchclass) rozwiązują problem. Dziękuję
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.