113 of 119 menu

Metóda animate

Metóda animate umožňuje vytvárať animačné efekty pre rôzne CSS vlastnosti. Jediný povinný parameter - objekt s CSS vlastnosťami, podobný tomu, čo odovzdávame do metódy css. Mnohé vlastnosti, ktoré majú nečíselné hodnoty alebo niekoľko hodnôt nemôžu byť animované základným funkcionalom jQuery (napríklad background-color). Tiež nie vždy sú podporované skrátené názvy CSS vlastností, napríklad font - namiesto toho je potrebné použiť fontSize alebo font-size. Pred hodnotami je možné uviesť '+=' alebo '-=', v takom prípade bude uvedená hodnota pripočítaná alebo odpočítaná od aktuálnej hodnoty vlastnosti. Tiež namiesto číselných hodnôt je možné uviesť show, hide alebo toggle. Všetky jQuery efekty, vrátane animate, je možné deaktivovať globálne, pomocou nastavenia jQuery.fx.off = true, ktoré nastavuje hodnotu trvania na 0.

Syntax

Prvým parametrom animácie je odovzdaný objekt s CSS vlastnosťami a ich hodnotami vo formáte kľúč: hodnota, ktoré sa chystáme animovať. Ostatné parametre sa považujú za nepovinné. Druhý parameter - určuje trvanie animácie v milisekundách, 400ms štandardne. Tretím parametrom funkciu plynulosti pre prechod (štandardne je to swing), a ako štvrtý - callback funkcia, ktorá sa spustí po vykonaní animácie:

.animate(vlastnosti, [trvanie ], [funkcia plynulosti ], [callback funkcia ]);

Čas je možné určiť nielen v milisekundách, ale aj kľúčovými slovami slow (600ms) a fast (200ms), čím väčšia hodnota, tým pomalšia animácia. Druhým parametrom je možné metóde odovzdať rôzne možnosti, vo forme objektu JavaScript, obsahujúceho dvojice kľúč: hodnota:

.animate(vlastnosti, options);

Napríklad, nastavme pre CSS vlastnosti width a height hodnotu toggle. Trvanie na 5000ms, funkcie plynulosti odovzdáme vo forme objektu, pre šírku to bude lineárna funkcia, a pre výšku - easeOutBounce, tiež po dokončení animácie sa nám raz vykoná funkcia (pozri kľúč complete), ktorá za elementom s #test umiestni div s nápisom 'Animation complete.':

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

Nižšie v tabuľke sú uvedené vlastnosti a metódy objektu options a ich popis:

Názov Popis
duration Trvanie animácie v milisekundách - reťazec alebo číslo. 400ms štandardne.
easing Určuje akú funkciu plynulosti použiť. swing štandardne.
queue Logická hodnota alebo reťazec. true štandardne. Určuje - zaradiť animáciu do frontu. Pri hodnote false sa animácia spustí okamžite. Ak parameter odovzdáme ako reťazec, animácia bude zaradená do frontu, ktorý tento parameter reprezentuje. Pri používaní frontu s používateľským názvom, animácia sa nespustí automaticky, na jej spustenie - použite dequeue('queuename').
specialEasing Tu môžete odovzdať objekt, v ktorom kľúčmi budú CSS vlastnosti, a hodnotami - im zodpovedajúce funkcie plynulosti.
step Funkcia, ktorá je volaná pre každú animovanú vlastnosť každého animovaného elementu. Umožňuje modifikovať Tween objekt, aby sa zmenila hodnota vlastnosti pred tým, ako je nastavená. Ako parametre prijíma aktuálnu hodnotu tween a Tween objekt.
progress Funkcia, volaná po každom kroku animácie, iba raz pre každý element nezávisle od počtu animovaných vlastností. Funkcia prijíma tri parametre animation (vo forme promisu), progress (číslo od 0 do 1) a remainingMs (číslo zostávajúcich milisekúnd).
complete Funkcia, volaná raz po skončení animácie elementu. Funkcia prijíma animation (vo forme promisu).
start Funkcia, ktorá je volaná, keď animácia elementu začína. Funkcia prijíma animation (vo forme promisu) a jumpedToEnd (Logická hodnota. Ak true, potom sa animácia automaticky dokončí).
done Funkcia, ktorá je volaná, keď animácia elementu končí (jej promis je splnený úspešne). Funkcia prijíma animation (vo forme promisu) a jumpedToEnd (Logická hodnota. Ak true, potom sa animácia automaticky dokončí).
fail Funkcia, ktorá je volaná, keď animácia elementu končí s chybou (jej promis je splnený s chybou). Funkcia prijíma animation (vo forme promisu) a jumpedToEnd (Logická hodnota. Ak true, potom sa animácia automaticky dokončí).
always Funkcia, ktorá je volaná, keď animácia elementu je dokončená alebo zastavená bez dokončenia (jej promis je splnený úspešne alebo s chybou). Funkcia prijíma animation (vo forme promisu) a jumpedToEnd (Logická hodnota. Ak true, potom sa animácia automaticky dokončí).

Príklad

Po kliknutí na tlačidlo #left, posunme zelený štvorec doľava, a na tlačidlo #right doprava o 50px, tiež nastavme trvanie na 600ms - príkazom 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'); });

Pozri tiež

  • metóda show,
    ktorá plynulo zobrazuje elementy
  • metóda stop,
    ktorá umožňuje zastaviť spustenú animáciu
  • metóda delay,
    ktorá nastavuje oneskorenie vykonania udalostí
  • vlastnosť jQuery.fx.off,
    ktorá umožňuje globálne vypnúť animáciu
  • selektor animated,
    ktorý vyberá elementy, ktoré sú v daný moment zapojené do animácie
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť