113 of 119 menu

Metoda animate

Metoda animate umožňuje vytvářet animační efekty pro různé CSS vlastnosti. Jediný povinný parametr - objekt s CSS vlastnostmi, podobný tomu, co předáváme metodě css. Mnoho vlastností, které mají nečíselné hodnoty nebo několik hodnot, nemůže být animováno základní funkcionalitou jQuery (například background-color). Také ne vždy jsou podporována zkrácená názvy CSS vlastností, například font - místo toho je třeba použít fontSize nebo font-size. Před hodnotami lze napsat '+=' nebo '-=', v takovém případě bude zadaná hodnota přičtena nebo odečtena od aktuální hodnoty vlastnosti. Také místo číselných hodnot lze napsat show, hide nebo toggle. Všechny jQuery efekty, včetně animate, lze globálně vypnout pomocí nastavení jQuery.fx.off = true, které nastavuje hodnotu délky trvání na 0.

Syntaxe

Prvním parametrem animace je předán objekt s CSS vlastnostmi a jejich hodnotami ve formátu klíč: hodnota, které hodláme animovat. Zbývající parametry jsou považovány za nepovinné. Druhý parametr - určuje délku trvání animace v milisekundách, 400ms ve výchozím nastavení. Třetím parametrem funkci pro plynulý průběh přechodu (ve výchozím nastavení je to swing), a také čtvrtým - callback funkce, která se spustí po dokončení animace:

.animate(vlastnosti, [délka trvání ], [funkce pro plynulý průběh ], [callback funkce ]);

Čas lze zadávat nejen v milisekundách, ale i klíčovými slovy slow (600ms) a fast (200ms), čím větší hodnota, tím pomalejší animace. Lze druhým parametrem předat metodě různé možnosti, ve formě objektu JavaScriptu, obsahujícího dvojice klíč: hodnota:

.animate(vlastnosti, options);

Například nastavme pro CSS vlastnosti width a height hodnotu toggle. Délku trvání na 5000ms, funkci pro plynulý průběh předáme ve formě objektu, pro šířku to bude lineární funkce, a pro výšku - easeOutBounce, také po dokončení animace se nám jednou provede funkce (viz klíč complete), která za prvkem s #test umístí div s nápisem 'Animation complete.':

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

Níže v tabulce jsou uvedeny vlastnosti a metody objektu options a jejich popis:

Název Popis
duration Délka trvání animace v milisekundách - řetězec nebo číslo. 400ms ve výchozím nastavení.
easing Určuje, jakou funkci pro plynulý průběh použít. swing ve výchozím nastavení.
queue Logická hodnota nebo řetězec. true v základním nastavení. Určuje - zařadit animaci do fronty. Při hodnotě false animace začne okamžitě. Pokud je parametr předán jako řetězec, animace bude zařazena do fronty, kterou tento parametr představuje. Při použití fronty s uživatelským názvem, animace se nespustí automaticky, aby se spustila - použijte dequeue('queuename').
specialEasing Zde můžete předat objekt, ve kterém klíči budou CSS vlastnosti, a hodnotami - jim odpovídající funkce pro plynulý průběh.
step Funkce, která je volána pro každou animovanou vlastnost každého animovaného prvku. Umožňuje modifikovat Tween objekt, aby změnila hodnotu vlastnosti předtím, než je nastavena. Jako parametry přijímá aktuální hodnotu tween a Tween objekt.
progress Funkce, volaná po každém kroku animace, pouze jednou pro každý prvek nezávisle na počtu animovaných vlastností. Funkce přijímá tři parametry animation (ve formě promisu), progress (číslo od 0 do 1) a remainingMs (číslo zbývajících milisekund).
complete Funkce, volaná jednou po skončení animace prvku. Funkce přijímá animation (ve formě promisu).
start Funkce, která je volána, když animace prvku začíná. Funkce přijímá animation (ve formě promisu) a jumpedToEnd (Logická hodnota. Pokud true, pak animace automaticky končí).
done Funkce, která je volána, když animace prvku končí (její promis je splněn úspěšně). Funkce přijímá animation (ve formě promisu) a jumpedToEnd (Logická hodnota. Pokud true, pak animace automaticky končí).
fail Funkce, která je volána, když animace prvku končí s chybou (její promis je splněn s chybou). Funkce přijímá animation (ve formě promisu) a jumpedToEnd (Logická hodnota. Pokud true, pak animace automaticky končí).
always Funkce, která je volána, když animace prvku je dokončena nebo zastavena bez dokončení (její promis je splněn úspěšně nebo s chybou). Funkce přijímá animation (ve formě promisu) a jumpedToEnd (Logická hodnota. Pokud true, pak animace automaticky končí).

Příklad

Pojďme při stisknutí tlačítka #left, posunout zelený čtverec doleva, a na tlačítko #right doprava o 50px, také nastavme délku trvání na 600ms - příkazem 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'); });

Viz také

  • metoda show,
    která plynule zobrazuje prvky
  • metoda stop,
    která umožňuje zastavit spuštěnou animaci
  • metoda delay,
    která nastavuje zpoždění provádění událostí
  • vlastnost jQuery.fx.off,
    která umožňuje globálně vypnout animaci
  • selektor animated,
    který vybírá prvky, které jsou v daném okamžiku zapojeny do animace
Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout