113 of 119 menu

Metoda animate

Metoda animate pozwala tworzyć efekty animacyjne dla różnych właściwości CSS. Jedynym obowiązkowym parametrem jest obiekt z właściwościami CSS, podobny do tego, który przekazujemy do metody css. Wiele właściwości, które mają nieliczbowe wartości lub kilka wartości, nie może być animowanych za pomocą podstawowej funkcjonalności jQuery (na przykład background-color). Również nie zawsze są obsługiwane skrócone nazwy właściwości CSS, na przykład font - zamiast tego należy użyć fontSize lub font-size. Przed wartościami można postawić '+=' lub '-=', w takim przypadku określona dalej wartość zostanie dodana lub odjęta od bieżącej wartości właściwości. Również zamiast liczbowych wartości można postawić show, hide lub toggle. Wszystkie efekty jQuery, w tym animate, można wyłączyć globalnie, używając ustawienia jQuery.fx.off = true, które ustawia wartość czasu trwania na 0.

Składnia

Pierwszym parametrem animacji jest obiekt z właściwościami CSS i ich wartościami w formacie klucz: wartość, które zamierzamy animować. Pozostałe parametry są uważane za opcjonalne. Drugi parametr określa czas trwania animacji w milisekundach, 400ms domyślnie. Trzecim parametrem jest funkcja wygładzania dla przejścia (domyślnie jest to swing), a czwartym - funkcja callback, która uruchomi się po wykonaniu animacji:

.animate(właściwości, [czas trwania ], [funkcja wygładzania ], [funkcja callback ]);

Czas można podawać nie tylko w milisekundach, ale także słowami kluczowymi slow (600ms) i fast (200ms), im większa wartość, tym wolniejsza animacja. Można jako drugi parametr przekazać metodzie różne opcje, w postaci obiektu JavaScript, zawierającego pary klucz: wartość:

.animate(właściwości, opcje);

Na przykład, ustawmy dla właściwości CSS width i height wartość toggle. Czas trwania na 5000ms, funkcjom wygładzania przekażemy w postaci obiektu, dla szerokości będzie to funkcja liniowa, a dla wysokości - easeOutBounce, również po zakończeniu animacji wykona się raz funkcja (patrz klucz complete), która po elemencie z #test umieści div z napisem 'Animation complete.':

$('#test').animate({ width: 'toggle', height: 'toggle' }, { duration: 5000, specialEasing: { width: 'linear', height: 'easeOutBounce' }, complete: function() { $(this).after('<div>Animation complete.</div>'); } });

Poniżej w tabeli przedstawiono właściwości i metody obiektu options i ich opis:

Nazwa Opis
duration Czas trwania animacji w milisekundach - ciąg znaków lub liczba. 400ms domyślnie.
easing Określa, jakiej funkcji wygładzania użyć. swing domyślnie.
queue Wartość logiczna lub ciąg znaków. true domyślnie. Wskazuje - umieścić czy animację w kolejce. Przy wartości false animacja rozpocznie się natychmiast. Jeśli parametr przekazany jest jako ciąg znaków, to animacja zostanie umieszczona w kolejce, reprezentowanej przez ten parametr. Przy użyciu kolejki z niestandardową nazwą, animacja nie uruchomi się automatycznie, aby ją uruchomić - użyj dequeue('queuename').
specialEasing Tutaj możesz przekazać obiekt, w którym kluczami będą właściwości CSS, a wartościami - odpowiadające im funkcje wygładzania.
step Funkcja, która jest wywoływana dla każdej animowanej właściwości każdego animowanego elementu. Pozwala ona modyfikować obiekt Tween, aby zmienić wartość właściwości zanim zostanie ona ustawiona. Jako parametry przyjmuje bieżącą wartość tween i obiekt Tween.
progress Funkcja wywoływana po każdym kroku animacji, tylko jeden raz dla każdego elementu, niezależnie od liczby animowanych właściwości. Funkcja przyjmuje trzy parametry animation (w postaci promisa), progress (liczba od 0 do 1) i remainingMs (liczba pozostałych milisekund).
complete Funkcja wywoływana raz po zakończeniu animacji elementu. Funkcja przyjmuje animation (w postaci promisa).
start Funkcja, która jest wywoływana, gdy animacja elementu się zaczyna. Funkcja przyjmuje animation (w postaci promisa) i jumpedToEnd (Wartość logiczna. Jeśli true, to animacja automatycznie się kończy).
done Funkcja, która jest wywoływana, gdy animacja elementu kończy się (jej promis jest wykonany pomyślnie). Funkcja przyjmuje animation (w postaci promisa) i jumpedToEnd (Wartość logiczna. Jeśli true, to animacja automatycznie się kończy).
fail Funkcja, która jest wywoływana, gdy animacja elementu kończy się błędem (jej promis jest wykonany z błędem). Funkcja przyjmuje animation (w postaci promisa) i jumpedToEnd (Wartość logiczna. Jeśli true, to animacja automatycznie się kończy).
always Funkcja, która jest wywoływana, gdy animacja elementu zostanie zakończona lub zatrzymana bez zakończenia (jej promis jest wykonany pomyślnie lub z błędem). Funkcja przyjmuje animation (w postaci promisa) i jumpedToEnd (Wartość logiczna. Jeśli true, to animacja automatycznie się kończy).

Przykład

Sprawmy, aby po naciśnięciu przycisku #left, zielony kwadrat przesunął się w lewo, a po naciśnięciu przycisku #right w prawo o 50px, również ustawmy czas trwania na 600ms - komendą slow:

<button id="left">left</button> <button id="right">right</button> <div class="block"></div> div { position: absolute; background-color: green; left: 50px; width: 100px; height: 100px; margin: 5px; } $('#right').click(function() { $('.block').animate({'left': '+=50px'}, 'slow'); }); $('#left').click(function() { $('.block').animate({'left': '-=50px'}, 'slow'); });

Zobacz też

  • metoda show,
    która płynnie pokazuje elementy
  • metoda stop,
    która pozwala zatrzymać uruchomioną animację
  • metoda delay,
    która ustawia opóźnienie wykonania zdarzeń
  • właściwość jQuery.fx.off,
    która pozwala globalnie wyłączyć animację
  • selektor animated,
    który wybiera elementy, które w danej chwili są zaangażowane w animację
Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć