Właściwości CSS związane z animacjami
Ten artykuł wyjaśnia właściwości CSS związane z animacjami.
Możesz nauczyć się, jak używać i pisać składnię właściwości @keyframes, animation i transition.
YouTube Video
HTML do podglądu
css-animation.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>CSS Properties Example</title>
7 <link rel="stylesheet" href="css-base.css">
8 <link rel="stylesheet" href="css-animation.css">
9</head>
10<body>
11 <!-- Header -->
12 <header>
13 <h1>CSS Properties For Animation</h1>
14 </header>
15
16 <!-- Main content -->
17 <main>
18 <header>
19 <h2>Animation Related Properties</h2>
20 </header>
21 <article>
22 <h3>@keyframes</h3>
23 <section>
24 <h4>Animation Examples</h4>
25 <header><h4>animation: slide 3s ease infinite</h4></header>
26 <section class="sample-view">
27 <div class="box-animation-slide">Slide Box</div>
28 </section>
29 <header><h4>animation: color-change 3s ease infinite</h4></header>
30 <section class="sample-view">
31 <div class="box-animation-color-change">Color Change Box</div>
32 </section>
33 <header><h4>animation: fade 3s ease infinite</h4></header>
34 <section class="sample-view">
35 <div class="box-animation-fade">Fade Box</div>
36 </section>
37 </section>
38 </article>
39 <article>
40 <h3>animation</h3>
41 <section>
42 <h4>Animation Examples</h4>
43 <header><h4>animation: slide 3s ease-in-out infinite</h4></header>
44 <section class="sample-view">
45 <div class="box-animation-ease-in-out">Slide Box</div>
46 </section>
47 <header><h4>animation: color-change 3s ease-in-out 1s 3 alternate</h4></header>
48 <section class="sample-view">
49 <div class="box-animation-alternate">Color Change Box</div>
50 </section>
51 </section>
52 </article>
53 <article>
54 <h3>transition</h3>
55 <section>
56 <h4>Transition Examples</h4>
57 <header><h4>transition: background-color 2s ease</h4></header>
58 <section class="sample-view">
59 <div class="transition-box">Hover me!</div>
60 </section>
61 <header><h4>transition: background-color 5s ease, width 0.5s ease-in</h4></header>
62 <section class="sample-view">
63 <div class="transition-2-properties">Hover me!</div>
64 </section>
65 </section>
66 </article>
67 </main>
68</body>
69</html>Animacja i przejście
Reguła @keyframes
1/* Animation definition */
2@keyframes slide {
3 0% {
4 transform: translateX(0);
5 }
6 50% {
7 transform: translateX(200px);
8 }
9 100% {
10 transform: translateX(0);
11 }
12}
13
14/* Apply the animation */
15.box-animation-slide {
16 width: 100px;
17 height: 100px;
18 background-color: skyblue;
19 animation: slide 3s ease infinite;
20}@keyframes jest używane w animacjach CSS do określania, jak style zmieniają się w trakcie animacji. W @keyframes zmiany stylów od początku do końca animacji są określane za pomocą procentów czasu lub słów kluczowych (from i to).
- To jest przykład animacji, w której element przesuwa się z lewej na prawą stronę i wraca do pierwotnej pozycji.
- W tym przykładzie po
@keyframesnapisanoslide, co definiuje animację o nazwieslide. 0%oznacza początek animacji, gdzietranslateX(0)ustawia element w jego pierwotnym położeniu.50%oznacza środek animacji, gdzie element przesuwa się o 200px w prawo za pomocątranslateX(200px).100%oznacza koniec animacji, gdzie element wraca do swojej pierwotnej pozycji.- W klasie
box-animation-slidewłaściwośćanimationjest używana do zastosowania animacjislidew odstępach 3 sekundowych.
1@keyframes color-change {
2 0% {
3 background-color: red;
4 }
5 25% {
6 background-color: blue;
7 }
8 50% {
9 background-color: green;
10 }
11 75% {
12 background-color: yellow;
13 }
14 100% {
15 background-color: red;
16 }
17}
18
19.box-animation-color-change {
20 width: 100px;
21 height: 100px;
22 background-color: skyblue;
23 animation: color-change 3s ease infinite;
24}- Możesz precyzyjnie kontrolować style w trakcie animacji. Określając procenty, możesz stosować różne style w dowolnych momentach.
- W tym przykładzie kolor stopniowo zmienia się z czerwonego na niebieski, zielony, żółty i z powrotem na czerwony.
1@keyframes fade {
2 from {
3 opacity: 0;
4 }
5 to {
6 opacity: 1;
7 }
8}
9
10.box-animation-fade {
11 width: 100px;
12 height: 100px;
13 background-color: blue;
14 animation: fade 3s ease infinite;
15}- W tym przykładzie
fromjest równoważne0%, atojest równoważne100%. To pozwala na definiowanie prostych animacji.
Podstawowa składnia
1@keyframes animation-name {
2 0% {
3 /* Style at the start */
4 }
5 50% {
6 /* Style at the midpoint */
7 }
8 100% {
9 /* Style at the end */
10 }
11}animation-name: Nazwa animacji. Jest to określane za pomocą właściwościanimationlubanimation-name.- Procenty lub słowa kluczowe: Użyj procentów od
0%do100%lub słów kluczowychfrom(równoważne0%) ito(równoważne100%).
Właściwość animation
1.box-animation-ease-in-out {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: slide 3s ease-in-out infinite;
6}Właściwość animation służy do stosowania animacji na elementach. Animacje określają, jak zestaw stylów CSS zmienia się w czasie. Dzięki właściwości animation możesz kontrolować czas trwania, zachowanie, opóźnienie, liczbę powtórzeń i inne cechy animacji.
- Klasa
box-animation-ease-in-outokreślaslidejakoanimation-namei wykorzystuje animacjęslidezdefiniowaną w@keyframes.3stoanimation-duration, co oznacza, że każdy cykl animacji trwa 3 sekundy.ease-in-outtoanimation-timing-function, co powoduje, że animacja rozpoczyna się powoli, przyspiesza, a na końcu ponownie zwalnia.infinitetoanimation-iteration-count, co oznacza, że animacja będzie powtarzana w nieskończoność.
1.box-animation-alternate {
2 width: 100px;
3 height: 100px;
4 background-color: skyblue;
5 animation: color-change 3s ease-in-out 1s 3 alternate;
6}- Klasa
box-animation-alternateokreślacolor-changejakoanimation-namei wykorzystuje animacjęcolor-changezdefiniowaną w@keyframes.1spoease-in-outtoanimation-delay, określające opóźnienie przed rozpoczęciem animacji. Animacja rozpocznie się po 1 sekundzie.3po1stoanimation-iteration-count, co oznacza, że animacja powtórzy się 3 razy.alternatetoanimation-direction, określające kierunek odtwarzania animacji.alternateoznacza, że animacja jest odtwarzana naprzemiennie.
Kompozycja właściwości animation
Właściwość animation jest skrótem, który łączy kilka podwłaściwości w jedną. Oto główne podwłaściwości:.
- Właściwość
animation-name: Określa nazwę animacji do zastosowania. Musi odpowiadać nazwie animacji zdefiniowanej w@keyframes. - Właściwość
animation-duration: Określa czas potrzebny na zakończenie jednego cyklu animacji. Jednostki czasu to sekundy (s) lub milisekundy (ms). - Właściwość
animation-timing-function: Określa krzywą prędkości animacji. Stosuje się wartości takie jak:ease,linear,ease-in,ease-out,ease-in-out, itp.- Określenie
easesprawia, że animacja zaczyna się powoli, przyspiesza, a następnie ponownie zwalnia na końcu. - Określenie
linearpowoduje, że animacja przebiega z stałą prędkością od początku do końca. - Określenie
ease-inpowoduje, że animacja zaczyna się powoli, a kończy szybko. - Określenie
ease-outpowoduje, że animacja zaczyna się szybko, a kończy powoli. - Określenie
ease-in-outpowoduje, że animacja zaczyna się powoli, przyspiesza i kończy powoli.
- Określenie
- Właściwość
animation-delayokreśla opóźnienie przed rozpoczęciem animacji. Jednostką czasu są sekundy lub milisekundy. - Właściwość
animation-iteration-countokreśla liczbę powtórzeń animacji. Określenieinfinitespowoduje, że animacja będzie powtarzana w nieskończoność. - Właściwość
animation-directionokreśla kierunek odtwarzania animacji. Opcje obejmująnormal(kierunek do przodu),reverse(kierunek wstecz),alternate(naprzemienne odtwarzanie) ialternate-reverse(naprzemienne odtwarzanie zaczynając od tyłu). - Właściwość
animation-fill-modeokreśla stan animacji przed jej rozpoczęciem i po jej zakończeniu. Możesz określić jedno znone,forwards,backwardslubboth. - Właściwość
animation-play-stateokreśla, czy animacja jest odtwarzana czy wstrzymana. Możesz określićrunninglubpaused.
Podsumowanie
Właściwość animation to potężne narzędzie do dynamicznej zmiany stylu elementów. Używając @keyframes, możesz określić, jak style zmieniają się w czasie, oraz kontrolować szczegółowe zachowanie animacji za pomocą każdej podwłaściwości animation.
Właściwość transition
1.transition-box {
2 background-color: lightgray;
3 transition: background-color 2s ease;
4}
5
6.transition-box:hover {
7 background-color: steelblue;
8}
9
10.transition-2-properties {
11 background-color: lightgray;
12 width: 150px;
13 height: 50px;
14 transition: background-color 5s ease, width 0.5s ease-in;
15}
16
17.transition-2-properties:hover {
18 background-color: blue;
19 width: 250px;
20}Właściwość transition służy do stosowania efektów animacji do zmian stylu CSS. Pozwala, aby zmiany wydawały się płynne podczas zmian stanu, takich jak hover, focus, active, lub gdy style są dynamicznie zmieniane przez JavaScript.
Przyjrzyjmy się przykładowi klasy transition-box, w której kolor tła zmienia się płynnie podczas najeżdżania myszką na przycisk.
- W klasie transition-box właściwość transition stosuje 2-sekundowe przejście do zmiany koloru tła. Zmiana została określona jako ease, co sprawia, że jest płynna.
- Pseudo-klasa hover zmienia kolor tła z lightgray na steelblue, gdy myszka znajduje się nad przyciskiem. Ta zmiana następuje płynnie w ciągu 2 sekund określonych w klasie transition-box.
Można zastosować transition do wielu właściwości jednocześnie.
- W przykładzie klasy transition-2-properties kolor tła zmienia się w ciągu 5 sekund, a szerokość zmienia się w ciągu 0,5 sekundy.
Podstawowa składnia
1/* Basic syntax of transition */
2transition: property duration timing-function delay;Propertyokreśla, do których właściwości CSS powinna być zastosowana animacja. Ustawienieallpowoduje zastosowanie animacji do wszystkich właściwości.Durationokreśla czas trwania animacji do jej zakończenia. Określ, używając sekund (s) lub milisekund (ms).Timing-functionokreśla zmiany prędkości animacji. Możesz użyć opcji takich jakease,linear,ease-in,ease-out,ease-in-outitd.Delayokreśla czas opóźnienia przed rozpoczęciem animacji. Określ w sekundach lub milisekundach.
Szczegółowe właściwości transition.
1/* Detailed properties of transition */
2transition-property: background-color;
3transition-duration: 0.3s;
4transition-timing-function: ease;
5transition-delay: 500ms;Transition może być również stosowany jako poszczególne właściwości, jak poniżej.
transition-property: Określa właściwość, do której ma być zastosowana animacja.transition-duration: Określa czas trwania animacji do jej zakończenia.transition-timing-function: Określa prędkość postępu animacji. Możesz używać opcji takich jakease,linear,ease-in,ease-out,ease-in-out.transition-delay: Określa czas opóźnienia przed rozpoczęciem animacji.
Możesz śledzić ten artykuł, korzystając z Visual Studio Code na naszym kanale YouTube. Proszę również sprawdzić nasz kanał YouTube.