Jest tak wiele, które można osiągnąć natywnie w przeglądarce za pomocą API CSS3 lub Animacji WWW w JavaScript. Proste animacje i przejścia są dobrze dostosowane do CSS3 - mając na uwadze, że bardziej złożone animacje muszą być osiągnięte przy użyciu JavaScript. (Jeśli tworzysz witrynę bez kodu, potrzebujesz Kreator strony internetowej .)
Problem z API Animacji WWW jest wsparcie przeglądarki i bieżący zestaw funkcji. Będąc dość młodą specyfikacją, poprawi to w nadchodzących latach.
W celu zwalczania tej funkcji i deficyt pomocy technicznej przeglądarki możemy zwrócić się do bibliotek animacji, takich jak Greensock. (GSAP). GSAP daje nam możliwość tworzenia złożonych animacji i wielu linii czasu, z możliwością animowania niemal dowolnego elementu lub właściwości / pary wartości - wszystko osiągnięte za pomocą prostej i intuicyjnej składni.
W tym samouczku będziemy korzystać z biblioteki GSAP, aby utworzyć kilka animacji. Główną i najbardziej złożoną animacją będziemy tworzyć przejście na scenę z dnia na noc i zobaczymy, jak łatwo możemy łańcuchować wiele przejść do tworzenia skomplikowanych animacji. Będziemy również tworzyć kilka prostych animacji, które będą stale działać.
Jeśli chcesz uzyskać więcej opcji swojego projektu animacji, sprawdź naszą kompilację Najlepsze darmowe oprogramowanie do projektowania graficznego . Dodawanie animacji do złożonej witryny? Potrzebujesz wsparcia hosting usługa.
Pobierz pliki. Dla tego samouczka.
Aby rozpocząć, musimy widelec Greensock Pen. w celu przeprowadzenia wtyczek premium. Dla samouczka będziemy korzystać z SVG, który został już zoptymalizowany i wklejony do naszego edytora HTML. Jeśli jednak używasz własnego SVG, musisz upewnić się, że wszystkie elementy mają unikalne identyfikatory.
GSAP oferuje dwa typy oś czasu: Timelinelite i Timelinemax. Wersja Timelinemax oferuje dostęp do dodatkowych funkcji, takich jak zdolność do powtarzania animacji, a także odtwarzanie ich w odwrotnie między innymi. Nasza pierwsza osi czasu będzie wodą, którą powtórzymy nieskończenie i Yoyo tam iz powrotem.
VAR Animation_water = Nowy Timelinemax ({
Powtórz: -1,
yoyo: true.
});
Aby ożywić wodę mamy kolejną ścieżkę w naszym SVG, ukryty z kryciecją "0". Wykorzystamy The.. morfsvg. Wtyczka do przekształcenia naszej oryginalnej ścieżki wody w nową ścieżkę wody. Przesuniemy element wody "12px" na osi Y. Dwie liczby na końcu nieruchomości odpowiednio reprezentują opóźnienie i czasy rozpoczęcia.
Animation_water
.to ("# woda", 2, {
Y: 12,
morfsvg: "# woda-2",
Łatwość: liniowy.easenone.
}, 0, 0)
;
Ponieważ będziemy ponowne wykorzystanie wielu właściwości i wartości wiele razy, aby stworzyć zmienne dla tych właściwości.
VAR Animation_ease = liniowy.Aseenone;
Biblioteka GSAP oferuje nam możliwość uzyskania wielu właściwości z dowolnej limitu czasu. Możemy zalogować je w konsoli, aby upewnić się, że wszystko działa, jak się spodziewamy.
Console.log (
"Animation_water Czas trwania:"
+ animacja_water.duration ()
.tofixed (2)
);
Dla każdego elementu chcemy animować osobno i stale, musimy stworzyć nową osi czasu. Chcemy również logować ten osi czasu w konsoli, jak idziemy.
var animation_cloud = Nowy timelinemax ({
Powtórz: -1,
yoyo: true.
});
Console.log ('n' +
...
animacja_cloud.duration (). Tofixed (2) + 'n'
);
Teraz, gdy możemy przygotować naszą ofertę, możemy stworzyć naszą animację w chmurze. Sekcja animacji, która przyjmuje nowe właściwości, może obsługiwać wiele par właściwości / wartości oddzielonych za pomocą przecinków.
Nasza animacja w chmurze musi być subtelna, więc musimy tylko zmienić wartości o niewielką ilość.
Animation_Cloud
.to ("# chmura", 3, {x: -2, y: 1, skala: 0,95, rotacja: 1, łatwość: animacja_ease}, 0, 0)
;
Następnie zaczniemy tworzyć naszą codzienną animację. Stworzymy zmienną na czas cyklu i dnia. Ustawienie "Yoyo" w GSAP również umożliwia opóźnienie animacji przed powtórzeniem.
var day_Ight_cycle_time = 15;
var animation_delay = day_night_cycle_time / 2;
var animation_tonight = nowy timelinemax ({{{
Powtórz: -1,
yoyo: prawda,
REPEALDELAY: Animation_Delay.
});
Wewnątrz naszego SVG mamy warstwę nakładką wykonaną z prostokąta obejmującego cały obraz z tym samym gradientem w tle, co nasze tło nocne. Nakładka stosuje tryb mieszania "mnożą" w celu przyciemnienia całego obrazu. Nasza animacja po prostu przejdzie nieprzezroczystość tego elementu.
Animation_tonight
.to ('# Nocna nakładka ",
Day_IGHT_CYCLE_TIME, {
nieprzezroczystość: 1,
Łatwość: animacja_ease.
}
, 0, 0)
;
GSAP oferuje inne Tweens na typach typów wspólnych "do" i "z". Tween typ potrzebujemy, aby ożywić naszym gradientem jest "staggerto" Tween. Możemy również użyć właściwości "cyklu", aby obrócić koło kolorów do naszych nowych wartości.
.STAGGERTO ("# Day-Gradient Stop",
Day_IGHT_CYCLE_TIME, {
cykl:{
Stopcolor: ['# 060414', "# 416584 ']
},
łatwość: animacja_ease,
}, 0, 0)
Możemy kontynuować dodawanie animacji do naszej animacji "dzisiejszej". Tym razem dodamy nową "do" między Tween, aby ustawić nasze słońce. Ustawimy czas wyświetlania, aby był ułamkiem czasu cyklu, aby animować słońca przed księżycem. GSAP pozwala nam ustawić prawie każdy atrybut. Użyjemy tego, aby animować właściwości "CX" i "CY" poniżej wzgórza po prawej stronie.
.to ("# Sun ', Day_IGHT_CYCLE_TIME / 1.25, {
Skala: 0,9,
attr: {cx: "753", CY: "697"},
łatwość: animacja_ease}
, 0, 0)
Korzystamy z tej samej techniki, którą użyliśmy do animacji słońca poza widoku (patrz krok 11 powyżej), aby animować księżyca w widoku. Oczywiście moglibyśmy to osiągnąć za pomocą jednego między Tween, ale w celu utworzenia faux ARC zrobimy to w dwóch częściach. W obu częściach mamy również zastosowanie nowej wartości do nieruchomości skali.
.to ('# Moon', Day_Ight_CyCle_Time / 2, {
Skala: 0,9,
attr: {cx: "174.5", CY: "202.5"},
łatwość: animacja_ease}
, 0, 0)
Druga część animacji księżyca czeka na zakończenie pierwszej sekcji przed rozpoczęciem. Uwaga: Te dwie części animacji księżyca są przykuty w kodzie animacji wraz z innymi właściwościami w nocy, których używamy.
Animation_tonight
...
.to ('# Moon', Day_night_Cycle_Time / 2, {
Skala: 0,9,
attr: {cx: "410.5", CY: "114,5"},
łatwość: animacja_ease}
, Day_IGHT_CYCLE_TIME / 2, 0)
;
Jedyną część pozostawioną z naszej codziennej animacji to gwiazdy. Animujemy gwiazdy, aby przejść przez przejście szereg właściwości. Pierwszym z nich jest po prostu przynieść je do widzenia, animując krycie.
.to ("# gwiazdy", dzień_night_cycle_time / 2,
{nieprzezroczystość: 1},
Day_IGHT_CYCLE_TIME / 2,
0)
Następnie użyjemy Tween "od", aby przenieść gwiazdy i obracać je z kąta negatywnego, gdy ożywiają w widoku. Używamy prostej matematyki, aby obliczyć nasz czas animacji i opóźnienia, wszystkie oparte na zmiennej "Day_Ight_CYCLE_TIME".
.From ("# gwiazdy",
Day_IGHT_CYCLE_TIME - (Day_IGNI_CYCLE_TIME / 4),
{Y: 150, rotacja: -15, łatwość: animacja_ease},
Day_IGHT_CYCLE_TIME / 4,
0)
Teraz stworzyliśmy naszą codzienną animację, możemy stworzyć kolejną stałą animację, aby nasze gwiazdy migają. Utworzymy nową osi czasu, a następnie zalogujemy czas trwania osi czasu w konsoli.
Var animation_stars = Nowy Timelinemax ({
Powtórz: -1,
yoyo: true.
});
Teraz stworzyliśmy osi czasu gotowy do animacji, musimy stworzyć naszą migającą animację. Animacja jest naprawdę prosta - wszystko, co chcemy zrobić, to zmniejszyć wartość krycia. Dzięki własności "Yoyo", krycie będzie ożywiony i wyłączanie i sprawi, że gwiazdy wyglądają, jakby migają.
Animation_stars
.to ("gwiazdki", 0,5,
{nieprzezroczystość: 0,5, łatwość: animacja_ease}
, 0, 0)
;
W ostatnim kroku skierujemy grupę gwiazd, aby zastosować naszą mrugającą animację, jednak będzie wyglądał znacznie lepiej, jeśli gwiazdy miały migać na jeden na raz zamiast razem w tym samym czasie. Osiągamy to, kierując każdą gwiazdę osobno i stosując inną animację.
Animation_stars
...
.to ("# gwiazda-dwa", 0,5,
{nieprzezroczystość: 0,5, łatwość: animacja_ease}
, 1,25, 0)
.to ("# gwiazda-trzy", 0,5,
{nieprzezroczystość: 0,5, łatwość: animacja_ease}
, 0,75, 0)
...;
Otóż to! Nasza codzienna animacja rowerowa jest zakończona i wygląda niesamowicie, ale nie musimy się tam powstrzymać. Ponieważ obraz jest w SVG, możemy łatwo dodać nowe elementy do naszego krajobrazu. Dodajmy trochę śniegu. Zrobimy to za pomocą dwóch oddzielnych warstw. Każda warstwa ma zbiór wielkich elipsy wystarczająco dużych, aby pokryć krajobraz, a następnie tę samą kolekcję powtórzyło powyżej.
& LT; G ID = "Snow-Dolna warstwa" ... & GT;
...
isellipse ... / & gt;
& lt; / g & gt;
& lt; g I id = "śnieżna warstwa" ... & gt;
...
isellipse ... / & gt;
& lt; / g & gt;
Tworzymy dwie oddzielne terminy dla naszego śniegu, aby móc animować ich nad różnymi czasami. Zalogujemy się również swoje czasy trwania konsoli.
var animation_snowtop = Nowy timelinemax ({
Powtórz: -1,
REPEALDELAY: 0.
});
var animation_snowbottom = Nowy Timelinemax ({{
Powtórz: -1,
REPEALDELAY: 0.
});
Aby ożywić nasze warstwy śniegu, chcemy przesunąć dwie warstwy wzdłuż osi pionowej. Różniąc ich czasami pojawia się pojawienie się warstw poruszających się w różnych prędkościach. Animacja działa, przesuwając kolekcję elipsy wzdłuż osi pionowej, aż druga kolekcja jest zamiast pierwszego pierwszego. Następnie powtarzamy animację.
Animation_snow
.to ("# śnieżna warstwa", 7,
{attr: {transformacja: "Tłumacz (24 -108)"}
, łatwość: animacja_ease}
, 0, 0)
;
Znajdź pełną kolekcję piór samouczka tutaj . Potrzebujesz gdzieś bezpieczne do przechowywania plików? Zobacz nasz przewodnik magazyn w chmurze .
Ten artykuł został pierwotnie opublikowany w kreatywnym projektowaniu stron internetowych projektantów projektowania stron internetowych. Subskrybuj tutaj projektant stron internetowych .
Powiązane artykuły:
(Kredyt obrazu: Apple) Serwis ICloud Apple jest jednym z Najlepsza pamięć chmur. Produkty wokół - ..
(Kredyt obrazu: Dahlia Khodur) Arkusze znaków są kolejnością dnia w tym samouczku, który obejmuje, jak stworzyć..
(Kredyt obrazu: www.beargryls.com) Ruch paralaksy, koncepcja ruchomych warstw w różnych prędkościach, była używ..
Strona 1 z 2: Korzystanie z siatki perspektywicznej w Illustrator: Kroki 01-09 ..
Istnieje wiele aspektów oświetlenia, które musisz rozważyć, aby przekazać formularz. Jednym z bardzo przydatnych fundamenta..
W tej ilustracja Geisha chciałem uchwycić grungy, ciemny, miejski klimat, sznurowany eleganckimi tradycyjnymi japońskimi eleme..
Bardziej wydajny przepływ pracy jest oczywistym korzyścią na poprawę techniki rzeźbienia prędkości, ale to nie jedyna korz..
Tworzenie futrzanej postaci może być łatwe, ale jeśli chcesz, aby naprawdę atrakcyjny kawałek futrzany 3d art. ..