CSS Animation: Magic that gives websites vitality and dynamic
CSS animation is like magic, making the website more energetic and attractive. Through animation, you can easily move the website elements, change its color and adjust its size smoothly.
In order to make your animation more interactive and smooth, you first need to understand the basic animation concept. In this article, you will learn the basic rules and animation attributes of animation to control the behavior of the animation.
Let's start! ?
To start using CSS animation, you need to understand two basic components:
- @Keyframes: The blueprint of animation. Animation attributes:
- Control the setting of animation. @Keyframes
@Keyframes is an animation roadmap. You can define the starting point and end of the animation and the steps between the animation.
This means that this part defines how the animation starts, how to run in the middle and how the animation end.
grammar:
For example:
<code>@keyframes animationName { from { /* 開始樣式 */ } to { /* 結(jié)束樣式 */ } }</code>
In this example, the opacity of the element will start from 0 and then to 1.
Before continuing, please check this e -book, which will make you a CSS animation expert:<code>@keyframes fadeIn { from { opacity: 0; /* 不可見 */ } to { opacity: 1; /* 可見 */ } }</code>
? CSS Animation Extract: Best Practice, Skills and Performance Tips
From simple fading out to complex animation, this e -book covers everything to master CSS animation, including:
timing function
Key frame and animation processPerformance optimization
- The application of real world
- Developers who want to create a smooth CSS animation. Get your copy immediately!
- Animation attributes In order to customize the CSS animation, different attributes are used. Each attribute has its own role and defines the behavior of animation.
- The animation attribute is directly applied to the element, defining the name, duration, delay, direction, etc. of the animation.
grammar:
For example:
In this example, the elements named "BOX" will first be visible, and it will be visible after two seconds, which will produce a smooth and off -income effect. In CSS, you have the following animation attributes:
<code>.element { animation-name: fadeIn; /* 動畫名稱或@keyframes */ animation-duration: 2s; /* 動畫持續(xù)時間 */ }</code>
Animation-name Animation-duration
<code>.box { height: 100px; width: 100px; background-color: rgb(44, 117, 117); animation-name: fadeIn; /* 動畫名稱 */ animation-duration: 2s; /* 動畫持續(xù)時間 */ } @keyframes fadeIn { from { opacity: 0; /* 不可見 */ } to { opacity: 1; /* 可見 */ } }</code>Animation-Timing-Function
Animation-delay
Animation-ITeration-COUNT
- Animation-Direction
- Animation-Fill-Mode
- Animation-PLAY-State
- Now, let us understand each attribute.
- Animation-name
- Function:
- This attribute is used to define which @Keyframes animation should be applied.
grammar:
For example:
Animation-name attribute is necessary for running animation.
Animation-duration
Function:
This attribute defines the duration of animation, that is, how long the animation is running.
You can define the animation duration as a unit in seconds (s) or milliseconds (ms).
grammar:
<code>@keyframes animationName { from { /* 開始樣式 */ } to { /* 結(jié)束樣式 */ } }</code>For example:
If you are not defined with Animation-Duration, it will automatically set to 0s (default value), which will cause the animation to fail.
<code>@keyframes fadeIn { from { opacity: 0; /* 不可見 */ } to { opacity: 1; /* 可見 */ } }</code>
Animation-Timing-Function Function:
This attribute is used to define the speed mode of animation. This means that you can use this attribute to define whether the animation is slow, run at a constant speed or run quickly.
It has the following values:
Linear: The animation will run at a constant speed.
Ease: Start slowly, fast in the middle, and end slowly.
- Ease-in: Start slowly.
- Ease-OUT: Slowly end.
- Ease-in-OUT: Start and end slowly.
- Cubic-Bezier (X1, Y1, X2, Y2): Custom speed mode.
- Example:
Function:
<code>.element { animation-name: fadeIn; /* 動畫名稱或@keyframes */ animation-duration: 2s; /* 動畫持續(xù)時間 */ }</code>How long will this attribute definition animation wait before starting, that is, the delay of animation.
grammar:
Example:
Animation-ITeration-COUNT
Function:<code>.box { height: 100px; width: 100px; background-color: rgb(44, 117, 117); animation-name: fadeIn; /* 動畫名稱 */ animation-duration: 2s; /* 動畫持續(xù)時間 */ } @keyframes fadeIn { from { opacity: 0; /* 不可見 */ } to { opacity: 1; /* 可見 */ } }</code>
This attribute is used to define the repeated number of animation, that is, how many times the animation will be repeated.
It has the following values:<code>animation-name: animationName;</code>
1: The animation will only run once (this is the default value).
Infinite: The animation will be repeated.
Any number: The animation will run the number of times you define.
Example:
- Animation-Direction
- Function:
It has the following values:
<code>animation-name: fadeIn;</code>NORMAL: The animation will run forward (this is the default value).
Reverse: The animation will run in reverse.
Alternate: The animation will run alternately, one move forward, once.
Alternate-Reverse: The animation will first run in the reverse and then run forward.
Example:
- Animation-Fill-Mode
- Function:
- This attribute is used to define the element style before and after the start of the animation. It defines which styles should be applied to elements when the animation is not played.
It has the following values:
<code>animation-duration: time;</code>None: No style is used before and after the animation.
Forwards: Keep the end of the animation.
Backwards: This will also apply the starting style of the animation within the delay time.
Both: Treatment to start and end.
Example:
- Animation-PLAY-State
- Function:
- This attribute specifies the status of animation: run or pause.
- It has the following values:
- running: The animation will continue.
- paused: The animation will be stopped but the state will be retained.
Example:
<code>@keyframes animationName { from { /* 開始樣式 */ } to { /* 結(jié)束樣式 */ } }</code>
This property is used for interactive animations, for example, pausing animations on hover.
Animation shorthand syntax
Animation shorthand allows you to define multiple animation properties in one line. You can combine them into one line to improve readability instead of writing each animation property one by one.
Grammar:
<code>@keyframes fadeIn { from { opacity: 0; /* 不可見 */ } to { opacity: 1; /* 可見 */ } }</code>
Example:
<code>.element { animation-name: fadeIn; /* 動畫名稱或@keyframes */ animation-duration: 2s; /* 動畫持續(xù)時間 */ }</code>
Here,
- slide: The name of the animation.
- 3s: The animation duration is 3 seconds.
- ease-in-out: The timed function is ease-in-out, which means the animation will start slowly, speed up, and then slow down again.
- 1s: The animation will start after a 1 second delay.
- infinite: The animation will repeat infinitely.
- alternate: The animation will alternate between moving forward and backward on each iteration.
- forwards: The styles that were applied at the last keyframe (at 100%) will be retained after the animation is complete.
Animation Cheat Sheet
I've created a comprehensive CSS Animation Cheat Sheet that covers all the key concepts, properties, and syntax used in CSS animations.
You can download the cheat sheet on GitHub by clicking the link below:
http://miracleart.cn/link/02f5df8adf0db026d38425594e68a007
That’s it.
I hope it helps.
Thank you for reading.
If you find my articles helpful and would like to support my work, please consider buying me a coffee?.
For more content like this, click here.
Follow me on X (Twitter) for daily web development tips.
Keep coding! !
The above is the detailed content of Mastering CSS Basic Animation Concepts. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

CSS blocks page rendering because browsers view inline and external CSS as key resources by default, especially with imported stylesheets, header large amounts of inline CSS, and unoptimized media query styles. 1. Extract critical CSS and embed it into HTML; 2. Delay loading non-critical CSS through JavaScript; 3. Use media attributes to optimize loading such as print styles; 4. Compress and merge CSS to reduce requests. It is recommended to use tools to extract key CSS, combine rel="preload" asynchronous loading, and use media delayed loading reasonably to avoid excessive splitting and complex script control.

In the following tutorial, I will show you how to create Lottie animations in Figma. We'll use two colorful designs to exmplify how you can animate in Figma, and then I'll show you how to go from Figma to Lottie animations. All you need is a free Fig

We put it to the test and it turns out Sass can replace JavaScript, at least when it comes to low-level logic and puzzle behavior. With nothing but maps, mixins, functions, and a whole lot of math, we managed to bring our Tangram puzzle to life, no J

ThebestapproachforCSSdependsontheproject'sspecificneeds.Forlargerprojects,externalCSSisbetterduetomaintainabilityandreusability;forsmallerprojectsorsingle-pageapplications,internalCSSmightbemoresuitable.It'scrucialtobalanceprojectsize,performanceneed

No,CSSdoesnothavetobeinlowercase.However,usinglowercaseisrecommendedfor:1)Consistencyandreadability,2)Avoidingerrorsinrelatedtechnologies,3)Potentialperformancebenefits,and4)Improvedcollaborationwithinteams.

CSSismostlycase-insensitive,butURLsandfontfamilynamesarecase-sensitive.1)Propertiesandvalueslikecolor:red;arenotcase-sensitive.2)URLsmustmatchtheserver'scase,e.g.,/images/Logo.png.3)Fontfamilynameslike'OpenSans'mustbeexact.

CSSCounters is a tool for creating automatic numbers. 1. Basic usage: define and operate counters through counter-reset and counter-increment, such as "SectionX." before h2. 2. Advanced usage: Use nested counters to create complex numbers, such as chapter and section numbers. 3. Notes: Ensure the counter is reset correctly, optimize performance, and simplify counter logic. 4. Best practice: clear naming, define counters in CSS, and use counter-increment and counter-reset reasonably.

Autoprefixer is a tool that automatically adds vendor prefixes to CSS attributes based on the target browser scope. 1. It solves the problem of manually maintaining prefixes with errors; 2. Work through the PostCSS plug-in form, parse CSS, analyze attributes that need to be prefixed, and generate code according to configuration; 3. The usage steps include installing plug-ins, setting browserslist, and enabling them in the build process; 4. Notes include not manually adding prefixes, keeping configuration updates, prefixes not all attributes, and it is recommended to use them with the preprocessor.
