אם אתה עובד עם טכנולוגיות אינטרנט כמו CSS, HTML ו- JavaScript, חשוב שיהיה לך ידע בסיסי על אנימציות ומעברים של CSS.
במאמר זה נלמד כיצד ליצור כמה אנימציות מעבר בסיסיות באמצעות CSS.
כיצד להנפיש אלמנט עם מעבר בסיסי על רחף
בדוגמה זו, נשנה את האטימות של אלמנט כאשר משתמש מרחף או מעל העכבר מעל האלמנט.
Static Template .elem { background: blueviolet; width: 300px; height: 150px; } .elem:hover { opacity: 0.5; }

זהו מעבר פשוט שניתן להפעיל כאשר אנו מרחפים מעל האלמנט. אנו יכולים להוסיף יותר ממעבר אחד שיפעל במקביל.
בואו נוסיף מאפיין של שינוי קנה מידה כדי להוסיף מעבר קנה מידה לאלמנט.
.elem:hover { transform: scale(1.1); }

אך נראה כי המעבר אינו חלק מכיוון שלא הגדרנו את משך המעבר ולא השתמשנו בשום פונקציית תזמון.
אם נוסיף את transition
המאפיין, זה יגרום לאלמנט לנוע בצורה חלקה יותר.
.elem { background: blueviolet; width: 300px; height: 150px; margin: 20px auto; transition: 500ms linear; }

בואו נפרט כיצד פועל נכס המעבר:
transition: 500ms linear;
500ms
: משך המעבר באלפיות השנייהlinear
: פונקציית התזמון
div { transition: ; }
אנו יכולים להוסיף אפשרויות נוספות כמו להלן (דוגמאות מ- MDN):
#delay { transition-property: font-size; transition-duration: 4s; transition-delay: 2s; }
אז מה הקוד הזה עושה?
- מעבר-נכס: הנכס שברצונך להנפיש. זה יכול להיות כל רכיב CSS כמו
background
,height
,translateY
,translateX
, וכן הלאה. - משך מעבר: משך המעבר
- עיכוב מעבר: העיכוב לפני תחילת המעבר
תוכל ללמוד עוד על השימושים השונים transition
ב- CSS כאן.
כיצד להפוך את המעברים לאינטראקטיביים יותר באמצעות מאפיין האנימציה ומסגרות המפתח
אנחנו יכולים לעשות יותר עם מעברי CSS כדי להפוך את האנימציה הזו ליצירתית ואינטראקטיבית יותר.
כיצד להעביר אלמנט עם מסגרות מפתח
בואו נסתכל על דוגמה בה האלמנט עובר מנקודה A לנקודה B. נשתמש בתרגום X ובתרגום Y.
Static Template .elem { background: orange; width: 300px; height: 150px; animation: moveToRight 2s ease-in-out; animation-delay: 1000ms; } @keyframes moveToRight { 0% { transform: translateX(0px); } 100% { transform: translateX(300px); } }
וזה מה שאנחנו מקבלים:

הפעם השתמשנו במאפיינים חדשים כמו אנימציה ומסגרות מפתח. השתמשנו animation
במאפיין כדי להגדיר את שם האנימציה ומשך הזמן, ומסגרות מפתח נתאר לנו כיצד האלמנט צריך לנוע.
animation: moveToRight 2s ease-in-out;
כאן קראתי לאנימציה moveToRight
- אבל אתה יכול להשתמש בכל שם שאתה אוהב. משך הזמן הארוך 2s
, וכן ease-in-out
הוא פונקצית עיתוי.
ישנן פונקציות תזמון אחרות שאתה יכול להשתמש כמו ease-in
, linear
, ease-out
אשר בעצם להפוך את חלקת האנימציה. תוכל ללמוד עוד על פונקציות התזמון כאן.
@keyframes
לוקח את שם האנימציה. במקרה זה זה moveToRight
.
@keyframes moveToRight { 0% { transform: translateX(0px); } 100% { transform: translateX(300px); } }
keyframes
יבצע את האנימציה בשלבים מרובים. הדוגמה שלמעלה משתמשת באחוזים כדי לייצג את הטווח או את סדר המעברים. נוכל גם להשתמש בשיטות from
ו- to
. כמו למטה "
@keyframes moveToRight { from { transform: translateX(0px); } to { transform: translateX(300px); } }
from
מייצג את נקודת ההתחלה או את השלב הראשון של האנימציה.
to
היא נקודת הסיום או השלב האחרון של האנימציה שתבוצע.
אולי תרצה להשתמש באחוזים במקרים מסוימים. לדוגמה, נניח שאתה רוצה להוסיף יותר משני מעברים אשר יבוצעו ברצף, כמו הדברים הבאים:
@keyframes moveToRight { 0% { transform: translateX(0px); } 50% { transform: translateX(150px); } 100% { transform: translateX(300px); } }
אנו יכולים להיות יצירתיים יותר ולהנפיש מאפיינים רבים במקביל כמו בדוגמה הבאה:

תוכלו לשחק עם מאפיינים וטכניקות אנימציה בארגז החול כאן:
הם עוד הרבה דברים שאנחנו יכולים לעשות עם מסגרות מפתח. ראשית, בואו נוסיף מעברים נוספים לאנימציה שלנו.
כיצד להנפיש יותר מאפיינים ולכלול אותם במעבר
הפעם ננפיש את הרקע, ונגרום לאלמנט לנוע בתבנית מרובעת. אנו הופכים את האנימציה לרוץ לנצח תוך שימוש infinite
במאפיין כפונקציית תזמון.
Static Template .elem { background: orange; width: 250px; height: 250px; border-radius: 10px; animation: moveToLeft 5s linear infinite; animation-delay: 1000ms; } @keyframes moveToLeft { 0% { transform: translateX(0px); background: linear-gradient( to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100% ); } 25% { transform: translateX(400px); background: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); } 50% { transform: translateY(200px) translateX(400px); background: linear-gradient(to top, #30cfd0 0%, #330867 100%); } 75% { transform: translateX(0px) translateY(200px); background: linear-gradient(120deg, #f6d365 0%, #fda085 100%); } 100% { transform: translateY(0px); } }
בואו נשבר את זה. ראשית אנו מוסיפים infinite
כדי לגרום לאנימציה לרוץ לנצח.
animation: moveToLeft 5s linear infinite;
ואז חילקנו את האנימציה לארבעה שלבים. בכל שלב נפעיל מעבר אחר וכל האנימציה תפעל ברצף.
- First step: set the element horizontally to
translateX(0px)
, and change the background to the gradient.
0% { transform: translateX(0px); background: linear-gradient( to right, #ff8177 0%, #ff867a 0%, #ff8c7f 21%, #f99185 52%, #cf556c 78%, #b12a5b 100% ); }
- The second animation will move the element from the left to the right and change the background color.
25% { transform: translateX(400px); background: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%); }
- The third animation will move the element down using
translateY
and change the background color again. - In the fourth step, the element will move back to the left and change the background color.
- In the fifth animation the element should go back to its original place.
Wrapping up
In this article, we covered various things you can do with CSS transitions. You can use CSS transitions in many ways in your applications to create a better user experience.
לאחר לימוד הבסיס של אנימציות CSS, ייתכן שתרצה ללכת מעבר ולעשות דברים מורכבים יותר הדורשים אינטראקציה של המשתמש. לשם כך תוכלו להשתמש ב- JavaScript או בכל ספריות הנפשה של צד שלישי.
היי, שמי סעיד חיאני יצרתי subscribi.io כדי לעזור ליוצרים, בלוגרים ומשפיעים להגדיל את הקהל שלהם באמצעות עלון.