Zapojení a příklady použití animate css. Čistá loga CSS. Hladce změňte barvu prvku při najetí myší pomocí přechodu
Animace CSS3 je poměrně široce používaná. Je na čase, aby i ti nejzačátečníci tvůrci webových stránek pochopili, co je to animace CSS a jak ji vytvořit. Možná si myslíte, že animace CSS3 je o pohybu bloků a vypadá to jako karikatura. Animace CSS ale není jen o přesunu prvku z jednoho bodu do druhého, ale také o zkreslení a dalších transformacích. Aby to bylo jasné i začátečníkům, sepsal jsem vše krok za krokem.
1. Základní vlastnosti CSS3 animace
Malý teoretický blok, ze kterého pochopíte, které vlastnosti CSS3 jsou zodpovědné za animaci a jaké hodnoty mohou nabývat.
- název-animace— jedinečný název animace (klíčové snímky, o nich budeme hovořit níže).
- délka animace— trvání animace v sekundách.
- funkce animace-časování— křivka změny rychlosti animace. Na první pohled je to velmi nejasné. Vždy je jednodušší ukázat na příkladu, který uvidíte níže. Může nabývat následujících hodnot: lineární | snadnost | uvolnění | uvolnění | cubic-bezier(n,n,n,n) .
- animace-zpoždění— zpoždění v sekundách před spuštěním animace.
- animace-iterace-počet— počet opakování animace. Lze jej zadat buď jednoduše jako číslo, nebo můžete zadat nekonečno a animace poběží donekonečna.
Zde jsou jen základní vlastnosti, které jsou více než dostatečné k vytvoření vaší první CSS3 animace.
Poslední věc, kterou potřebujeme znát a pochopit z teorie, je, jak vytvořit klíčové snímky. To je také snadné a provádí se pomocí pravidla @keyframes, ve kterém jsou specifikovány klíčové snímky. Syntaxe tohoto pravidla je následující:
Výše nastavíme první a poslední snímek. Všechny mezistavy budou vypočteny AUTOMATICKY!
2. Reálný příklad animace CSS3
Teorie je jako obvykle nudná a ne vždy jasná. Je mnohem snazší vidět vše na skutečném příkladu, ale je nejlepší to udělat sami na nějaké testovací HTML stránce.
Když se učíte programovací jazyk, obvykle napíšete program „Ahoj, světe!“, ze kterého pochopíte syntaxi tohoto jazyka a některé další základní věci. Ale nestudujeme programovací jazyk, ale jazyk pro popis vzhledu dokumentu. Proto budeme mít vlastní "Ahoj, světe!"
Zde je to, co uděláme například: ať máme nějaký blok Zdá se, že je vše jasné - stačí zkomprimovat blok Nejprve označení HTML. Je to velmi jednoduché, protože pracujeme pouze s jedním prvkem na stránce. A zde je to, co je v souboru stylu: Jak vidíte, zadali jsme pouze první a poslední klíčový snímek a všechny přechodné snímky byly „sestaveny“ automaticky. Vaše první animace CSS3 je připravena. Pro upevnění získaných znalostí vytvořte HTML dokument a CSS soubor a vložte tam (nebo ještě lépe napište ručně) kód z příkladu. Pak určitě všechno pochopíte. Poté zkuste totéž s výškou bloku (měla by se snížit na výšku), abyste zajistili materiál. Výše jste se naučili, jak snadno vytvořit animaci CSS3. Pokud jste to zkusili udělat vlastníma rukama, už jste pochopili celý proces a nyní chcete zjistit, jak můžete vytvořit složitější a krásnější animaci. A skutečně je možné ji vytvořit. Níže jsou uvedeny 3 lekce, kde je animace vytvořena stejným způsobem jako ve výše uvedeném příkladu. 3 lekce o animaci CSS (transformace) Lekce vám pomohou porozumět animaci CSS ještě lépe. Hlavní věc je pokusit se zopakovat to, co vidíte v lekcích. Nebo alespoň zkuste změnit hodnoty vlastností a uvidíte, co se stane, pak se budete méně bát CSS. Na mnoha vstupních nebo propagačních stránkách stále častěji najdete různé animační efekty. Koneckonců dělají stránku zajímavější a atraktivnější. V zásadě se tyto efekty nastavují buď na nějakou událost (kliknutí nebo najetí na prvek), nebo v okamžiku rolování stránky. Myslím, že jste na takové stránky narazili, při rolování stránky se plynule a krásně objevují různé prvky. Dříve jste k implementaci těchto efektů museli používat pouze JS, ale vývoj nestojí a s vydáním CSS3 na něm lze implementovat všechny tyto efekty. V této lekci vám představíme velmi zajímavý nástroj tzv animovat.css. Toto je hotová šablona stylů CSS, která má ve svém arzenálu přes 50 různých efektů a všechny tyto efekty jsou implementovány v CSS3. Pro jeho použití stačí nastavit určitou třídu pro požadovaný prvek a na tento prvek bude aplikován efekt animace. Jak jsem řekl dříve, tato animace je implementována v CSS3, takže tyto efekty budou fungovat ve všech moderních prohlížečích. Nyní se na to podíváme blíže animovat.css. Podívejte se na video tutoriál Pokud jste udělali vše, jak je popsáno výše, pak při načtení stránky bude tento efekt aplikován na prvek a je to, animace tam skončí. Ale co když potřebujete, aby animace pokračovala bez zastavení? Chcete-li to provést, přidejte další třídu pro náš animovaný prvek. Tohle je třída - nekonečný. Nastavte animaci, když najedete myší na prvek Podívejte se na video tutoriál Všechny dříve popsané příklady nastavují animaci ihned po načtení stránky, ale v praxi je to málokdy potřeba. V praxi je velmi často nutné nastavit animaci při najetí na prvek, a proto níže uvádím již hotový kód pro tuto implementaci. HTML Naše označení se trochu změnilo, nyní nemusíme specifikovat třídu, která je zodpovědná za konkrétní animaci. Tuto hodnotu musíme uvést ve speciálním atributu datový efekt. Věnujte tomu prosím pozornost, je to velmi důležité. Zde je malý kód pro jQuery, který bude sledovat událost najetí kurzoru myši na prvek a pokud tato událost nastane, skript k němu přidá třídu, jejíž hodnota je uvedena v atributu datový efekt. Přidáním této třídy se použije animace. Funkce animate(elem)( var effect = elem.data("efekt"); if(!efekt || elem.hasClass(efekt)) vrátí hodnotu false; elem.addClass(effect); setTimeout(function())( elem. removeClass (efekt), 1000 ) $(".animated").mouseenter(function() (animate($(this)); )); Tento skript si samozřejmě můžete libovolně měnit, například v něm můžete změnit událost mouseenter na klikněte. Animace pak v tomto případě nenastane v okamžiku najetí myší na prvek, ale v okamžiku kliknutí. Podívejte se na video tutoriál A nakonec se podívejme na další příklad, kde můžete snadno použít animovat.css. Jmenovitě můžete nastavit různé efekty pro prvky při posouvání stránky. Pro tyto účely kromě animovat.css, potřebujeme také speciální skript wow.js. Tato kolekce obsahuje ty nejlepší a nejkvalitnější CSS funkce. Zde můžete najít různé a úžasné ukázky a techniky od slavných designérů a designérů layoutů, kteří se snaží dokázat, že je nyní možné dělat téměř vše pouze pomocí čistého CSS. Najdete zde také několik lekcí, které vám podrobně řeknou, jak takové tvoření vytvořit. Doufám, že vám tato sbírka bude užitečná. V této ukázce budete moci vytvářet a upravovat luxusní mraky ve 3D. Tyto CSS cloudy nám dávají jasně najevo, že možnosti webových technologií jsou téměř neomezené. Toto jsou příklady log vytvořených pouze s čistým CSS. Jen se zamyslete, při jeho tvorbě nebyly použity žádné obrázky. Je to prostě něco. Skvělý a umělecký příklad použití CSS v abecedě Jednoduchý, ale velmi stylový navigační panel pro web, samozřejmě vytvořený pouze pomocí CSS3. žádné obrázky ani skripty. Jeden z mnoha svátečních log z vyhledávače Google vytvořený v CSS. Toto je skvělý příklad dobrého využití animace CSS. Dobře zpracovaný a kvalitní posuvník obrázků. Plus 4 příklady v ukázce. Krásný animovaný a vícebarevný prsten s málo CSS kódem Zdá se mi, že tento filtr je velmi potřebný, zejména proto, že je vyroben pomocí čistého CSS. Pomocí rozostření můžete přitáhnout pozornost uživatele k určitému bodu. Tento článek je o responzivních blocích Flexbox. Mluví úplně o těchto blocích, i když je článek v angličtině. Krásná rozbalovací nabídka pro webovou stránku s ikonami. Obrovským plusem je, že je celý vyroben v CSS. Vysoce kvalitní materiál v angličtině, který hovoří o použití CSS filtrů na obrázcích. Příspěvek o formulářích CSS s mnoha příklady Lekce, jak vytvořit stylové ukazatele průběhu pomocí čistého CSS a animací. Můžete se také podívat na příklad a stáhnout si zdroje. Nejpopulárnější CSS animační projekt na internetu současnosti. A pravděpodobně nejjednodušší a nejkvalitnější a navíc zdarma. Abych byl upřímný, tyto ukazatele už na blogu byly vidět, ale zdá se mi, že stojí za to vám je znovu ukázat. Protože to jsou nejkrásnější CSS indikátory na internetu. V dnešní době je těžké překvapit tlačítky CSS, ale je to docela slušná možnost Malá a kvalitní internetová aplikace, se kterou vytvoříte krásné přepínače pro použití na webu. CSS knihovna pro bezplatné popisky - Hint.css Barevná schémata pro lidi, kteří se neradi vrtají v kódu Před příchodem CSS3 při slově „animace“ polil designéry rozvržení studený pot. A to vše proto, že v té době nebylo vytváření vysoce kvalitní a krásné animace triviálním úkolem. CSS to nedokázalo, takže všechny animace byly provedeny v JavaScriptu. Bylo nutné prokousat spoustu fór, najít stejné soudruhy v neštěstí, strávit spoustu času vývojem a nakonec slyšet od designéra: „Dobře, to bude stačit.“ A když CSS3 konečně vyšlo, ohňostroj do rána neustal a šampaňské teklo jako řeka. Byl to skvělý den pro všechny webové vývojáře (další takový den byl, když Microsoft oznámil konec podpory pro Internet Explorer). S příchodem CSS3 se mnoho dříve složitých úkolů zjednodušilo a práce s nimi byla příjemná. Totéž platí pro animace v CSS, o kterých budu mluvit v tomto článku. Přechody CSS umožňují plynule a v průběhu času provádět změny vlastností CSS. Tímto způsobem získáte příležitost řídit proces přechodu prvku z jednoho stavu do druhého. Začněme jednoduchým příkladem a pojďme dál. Když najedete kurzorem na čtverec, barva pozadí se plynule změní. Nyní se podíváme blíže na to, jak spravovat přechody v CSS. Máme pouze 5 vlastností, které nám umožňují ovládat animaci přechodu: přechodová vlastnost- určuje seznam vlastností, které budou animovány; vlastnosti zde neuvedené budou upraveny jako obvykle. Můžete animovat všechny vlastnosti pro konkrétní prvek zadáním hodnoty all. Pokud neurčíte žádné vlastnosti, výchozí hodnota je all. Přechodová vlastnost: šířka; přechodné trvání- nastavuje dobu trvání animace čas lze zadat v sekundách nebo milisekundách; Doba trvání přechodu: 1s; přechod-časování-funkce- funkce času, specifikuje body zrychlení a zpomalení za určitou dobu pro kontrolu změn rychlosti animace. Jednoduše řečeno, tuto vlastnost můžete použít k určení chování animace. Animaci můžeme například zrychlit na začátku a zpomalit na konci nebo naopak. Bézierovy křivky se používají k definování procesu animace. Obecně platí, že funkce načasování přechodu vám umožňuje vytvořit mnoho různých chování pro animace, toto je celé téma na článek, takže zde nebudeme zacházet hlouběji. Transition-timing-function: cubic-bezier(0, 0, 1, 1); přechod-zpoždění- nastavuje časové zpoždění před začátkem animace, lze zadat v sekundách nebo milisekundách. Přechodové zpoždění: 500 ms; přechod je obecná vlastnost, která umožňuje vypsat první čtyři vlastnosti v pořadí: vlastnost, trvání, funkce časování, zpoždění. Přechod: barva pozadí 1s cubic-bezier(0, 0, 1, 1) 500 ms; Máme tuto jednoduchou animaci: když najedete myší na čtverec, změní se šířka; doba trvání animace je jedna sekunda; animace se přehrává podle lineární funkce; zpoždění před spuštěním animace 500 milisekund. S přechody CSS můžete animovat téměř všechny vlastnosti a vytvořit mnoho zajímavých, krásných, funkčních a dokonce komplexních animací, které doplní a vylepší váš projekt. Například jsem vytvořil tento Material-FAB v čistém CSS pomocí přechodů: Animace CSS umožňují vytvářet složitější animace než přechody CSS. Celé tajemství je v @keyframes. Pravidlo @keyframes vám umožňuje vytvořit animaci pomocí sady klíčových snímků, to znamená, že popisuje stav objektu v určitém okamžiku. Podívejme se na jednoduchý příklad. Náš kruh ožil a zdá se, že pulzuje. Existuje 9 vlastností, které vám umožňují ovládat animace CSS: název-animace- zde je název animace, která spojuje pravidlo @keyframes s selektorem. Název-animace: moje-animace; @keyframes moje-animace ( 0 % ( neprůhlednost: 0; ) 100 % ( neprůhlednost: 1; ) ) animace-iterace-počet- nastavuje počet opakování animace, výchozí hodnota je 1. Hodnota infinite znamená, že se animace bude přehrávat donekonečna. Počet iterací animací: 2; animace-režie- nastavuje směr animace. Směr animace: reverzní; animace-přehrát-stav- tato vlastnost řídí zastavení a přehrávání animace. Existují dvě hodnoty, running (animace se přehraje ve výchozím nastavení) a paused (zastaví animaci). Stav přehrávání animace: pozastaveno; režim animace- nastavuje, které vlastnosti CSS budou aplikovány na objekt před nebo po animaci. Může nabývat následujících hodnot: Animation-fill-mode: backward; Vlastnosti délka animace, funkce animace-časování, animace-zpoždění Fungují stejně jako podobné vlastnosti v přechodech CSS, o kterých jsem psal dříve, takže je nebudu opakovat. Pomocí CSS animací můžete vytvářet poměrně složité animace bez použití JavaScriptu. Nápadným příkladem jsou loadery, tedy prvky, které ukazují, že se na vaší stránce něco načítá. Zde jsou nějaké příklady: CSS modulu Motion Path Module umožňuje vytvářet pohyb objektů po cestě prostřednictvím speciální vlastnosti motion-path. Dříve bylo možné takovou animaci provádět pouze pomocí SVG nebo složitých skriptů. Tato specifikace má 3 vlastnosti: pohybová cesta- tato vlastnost umožňuje určit body (souřadnice), po kterých se bude objekt pohybovat. Syntaxe je stejná jako u atributu cesty SVG. Dráha pohybu: cesta("M 235,323 Q 412,440 365,615 Q 400,300 670,240 L 870,340 L 975,535 Q 730,600 630,535 z"); offset pohybu- tato vlastnost uvádí objekt do pohybu z počátečního bodu do koncového bodu. Přijímá buď dvojnásobnou délku, nebo procento. Aby se objekt začal pohybovat, musíte definovat animaci, která půjde od 0 do 100 %. @keyframes airplane-fly ( 0 % ( posun pohybu: 0; ) 100 % ( posun pohybu: 100 %; ) ) pohyb-rotace- tato vlastnost umožňuje určit, kterou stranou dopředu se objekt posune. Můžete zadat auto, reverzní nebo vlastní hodnotu ve stupních ("-45deg", "30deg" atd.). Pohyb-rotace: auto; Pohybová cesta je bohužel zatím podporována pouze v Chrome a Opeře, ale doufejme, že jejich příkladu budou brzy následovat i ostatní prohlížeče, protože věc je opravdu užitečná. Pro ty, kteří ještě nepochopili, jak to funguje, nebo to chtějí lépe pochopit, jsem udělal příklad (odkaz na codeopen).
Všechny moderní prohlížeče, kromě IE9, podporují přechody CSS a animace CSS, které umožňují implementovat animaci pomocí CSS bez použití JavaScriptu. Animace se vztahuje na jakékoli prvky html, stejně jako na pseudoprvky :před A :po TJ: 10.0 Chcete-li ve svém projektu použít animaci, stačí udělat dvě věci: Pravidlo @klíčové snímky umožňuje vytvořit animaci pomocí klíčových snímků - stavů objektu v určitém okamžiku. Klíčové snímky animace se vytvářejí pomocí klíčových slov z A na(ekvivalent hodnot 0 % a 100 %) nebo pomocí procentních bodů, kterých lze nastavit kolik chcete. Můžete také kombinovat klíčová slova a procentní body. Pokud počáteční ( z, 0 %) nebo konečná ( na, 100%), prohlížeč pro ně nastaví vypočítané hodnoty vlastností animace tak, jak by byly, kdyby nebyla použita žádná animace. Pokud mají dva klíčové snímky stejné selektory, následující zruší předchozí. Při definování animace bezprostředně po vlastnosti @klíčové snímky musí následovat název této animace (tento název je pak nutné zadat ve vlastnosti animace prvku, který bude animován). @keyframes move ( from ( transform: translateX(0px); ) 50 % ( transform: translateX(130px); ) 100 % ( transform: translateX(0px); ) ) @klíčové snímky se pohybují ( z ( 50%
{
100%
{
transform: translateX(0px); Vytvořili jsme animaci, která funguje takto: Zde a níže jsem pro usnadnění napsal v příkladech několik řádků JavaScriptu, které budou střídavě přidávat nebo odebírat třídu s animací na prvku, takže pro přehrání animace stačí kliknout na tento prvek. Klíčové snímky lze seskupit: @keyframes move ( from ( transform: translateX(0px); ) 25%, 50% ( transform: translateX(130px); ) 100% ( transform: translateX(0px); ) ) @klíčové snímky se pohybují ( z ( transform: translateX(0px); 25%, 50%
{
transform: translateX(130px); 100%
{
transform: translateX(0px); K jednomu prvku můžete přiřadit několik animací, jejich názvy a parametry musí být zapsány v pořadí přiřazení: prvek ( název-animace: animace-1, animace-2; trvání-animace: 2 s, 4 s; ) živel( název-animace : animace-1, animace-2 ; délka animace : 2s, 4s ; Připojení animace k prvku se provádí pomocí dvou příkazů - název-animace A délka animace. Vlastnictví název-animace určuje název animace. Doporučuje se použít název, který odráží podstatu animace, a můžete použít jedno nebo několik slov spojených dohromady pomocí mezery - nebo podtržítka _. animace-name: move; Vlastnictví funkce animace-časování umožňuje nastavit speciální funkci zodpovědnou za rychlost přehrávání animace. Upozorňujeme, že rychlost přehrávání animace je nejčastěji nelineární, tzn. jeho okamžitá rychlost v různých oblastech se bude lišit. V současné době existuje několik vestavěných argumentů pro toto pravidlo: ulehčit, zklidnění, uvolnění
, easy-in-out, lineární
, krokový start
, krokový konec. Takové funkce si však můžete vytvořit sami. Speciální funkce cubic-bezier(P1x, P1y, P2x, P2y);
vezme čtyři argumenty a během procesu animace na nich vytvoří křivku rozdělení hodnot. Na tomto webu si můžete procvičit vytváření vlastních funkcí a podívat se, jak fungují. Nakonec lze animaci pomocí funkce přeměnit na sadu diskrétních hodnot kroky(počet kroků, směr), jehož argumenty určují počet jeho kroků a směr, který může nabývat hodnot Start nebo konec
. Vizuální srovnání Vlastnictví animace-zpoždění definuje prodlevu, než se animace začne přehrávat, nastavenou v sekundách nebo milisekundách. Negativní zpoždění spustí animaci od určitého bodu v jejím cyklu, tzn. od doby uvedené v prodlení. To vám umožňuje aplikovat animaci na více fázově posunutých prvků změnou pouze doby zpoždění. Pokud chcete, aby animace začala od středu, nastavte záporné zpoždění rovnající se polovině nastaveného času délka animace. Neděděno. prvek ( název-animace: animace-1; trvání animace: 2 s; zpoždění animace: 10 s; // 10 sekund uplyne, než se tato animace spustí) Vlastnictví animace-iterace-počet umožňuje spustit animaci několikrát. Neděděno. Nastavte hodnotu na libovolnou kladnou hodnotu 1, 2, 3 …
atd. nebo nekonečný pro nekonečné opakování. Význam 0
nebo jakékoli záporné číslo odstraní animaci z přehrávání. 1
<div class = "toSmallWidth" >
div
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.toSmallWidth ( margin : 20px auto ; /*vnější okraje nahoře a dole po 20px a zarovnání uprostřed*/ pozadí:červená; /*červené pozadí bloku*/ výška: 100px; /*výška bloku 100px*/šířka: 800px; /*počáteční šířka 800px*/-webkit-animation-name : animWidthSitehere; -webkit-animation-duration : 5s; /* vlastnost s předponou pro prohlížeče Chrome, Safari, Opera */ název-animace: animWidthSitehere; /* uveďte název klíčových snímků (umístěných níže)*/ délka animace: 5s; /*nastavit dobu trvání animace*/
}
/* klíčové snímky s předponou pro prohlížeče Chrome, Safari, Opera */
@-webkit-keyframes animWidthSitehere ( od (šířka: 800px;) do (šířka: 100px;)) @keyframes animWidthSitehere ( od (šířka: 800px;) /*první klíčový snímek, kde je šířka bloku 800px*/ do (šířka: 100px;) /*poslední klíčový snímek, kde šířka bloku je 100px*/
}
3. Složitější příklady animací CSS3
Základní HTML značení
Nekonečná animace
Nadpis
HTML
Nadpis
Tvorba animace při rolování stránky
CSS 3D mraky
Čistá loga CSS
Abeceda s animací CSS
3D navigace na webu
Google Doodle s CSS
Posuvník
Dvojitý animovaný prsten
Rozostření v CSS
Kompletní průvodce Flexboxem
Barevné a animované menu pomocí CSS3
CSS filtry
CSS formuláře
Ukazatele průběhu v CSS
Animace - Animate.css
Indikátory zatížení - Spinkit
Tlačítka
Generátor pro vytváření přepínačů
Popisky
Barevná schémata
CSS přechody
CSS animace
Modul cesty pohybu
Podpora prohlížeče
Firefox: 16,0, 5,0 -moz-
Chrome: 43.0, 4.0 -webkit-
Safari: 4.0 -webkit-
Opera: 12,1, 12,0 -o-
iOS Safari: 9, 7.1 -webkit-
Opera Mini: -
Prohlížeč Android: 44, 4.1 -webkit-
Chrome pro Android: 44pravidlo @keyframes
Název animace
Funkce času
Animace zpoždění
Opakujte animaci