Table of Contents
CSS Animation Quick Literacy
通过动画形象理解css属性
变形 - 圆角矩形
通过动画学习盒子模型
Home Web Front-end CSS Tutorial An article to quickly learn css through animation!

An article to quickly learn css through animation!

Dec 29, 2021 am 11:04 AM
css animation

This article will give you an in-depth analysis of how to achieve animation effects and quickly learn css through animation. I hope it will be helpful to everyone!

An article to quickly learn css through animation!

As business demands more and more for the front-end, CSS, one of the three magic weapons of the front-end, is becoming more and more complex. It brings a certain amount of pressure to the beginner students. CSS is not very complicated down to the specific attributes. The main problem is that there are many knowledge points. After finally learning the main knowledge points, I looked at the questions on the Internet or read the CSS books written by the masters, and I was drowned in a new ocean.

In fact, the human brain is not good at memorizing scattered knowledge points, but if there is a logical line that can connect these knowledge points, it can greatly facilitate the brain's memory and search. The clue should be logical and preferably interesting.

It just so happens that CSS animation is such an interesting clue. You can understand CSS properties in the changes of animation.

For example, we know that CSS adds the border-radius attribute of the rounded rectangle, so what is the effect of setting rounded corners of different sizes? Instead of changing the size again and again to experiment, we can make an animation to make it clear at a glance:

An article to quickly learn css through animation!

We can also make it move and deform:

An article to quickly learn css through animation!

We can even make it rotate:

An article to quickly learn css through animation!

CSS Animation Quick Literacy

Before stringing together other attributes, we First understand animation.

The core keyword of animation is "movement". We have to answer a few questions:

  • What: What is moving?
  • Where: Where to move?
  • When: When to move? How long does it take to move?
  • How: How to move?
  • How much: How many times?

The results of these questions constitute the elements of an animation.

First of all, what is the moving subject? It's our HTML tags, or complex components composed of tags. For us, it’s mainly

and. Second, where to move? This is the css property that will be changed. This is also the knowledge point of the css we want to use to string together. Third, when to move? We need to specify the duration of the animation, the starting time, etc. This is a purely technical property of animation. Fourth, how to move? Whether to move at a constant speed, to accelerate, to accelerate first and then decelerate, or to create a Bezier curve or something like that, these are also the technical attributes of animation. Fifth, how many times do you move? Is it once, multiple times, or keeps moving? This is also a technical attribute of pure animation.

Transition animation

We first learn a simple CSS property animation called transition. It is composed of the above 4 properties:

  • transition-property: Specify the css property value to be changed
  • transition-duration: animation duration
  • transition -timing-function: The speed change of the animation
  • transition-delay: The delay time of the animation start

Let’s take a look at an example:

        #hellocss {
            transition-property: width;
            transition-duration: 5s;
            transition-timing-function: linear;
            transition-delay: 1s;
        }
Copy after login

This animation specifies It means that if the width changes, delay one second to run the animation of the width change for 5 seconds. The rate of change is uniform.

In order to see clearly, we set an initial width, plus a background color and foreground color:

    <style>
        #hellocss {
            background-color: blue;
            color: yellow;
            width: 20px;
            transition-property: width;
            transition-duration: 5s;
            transition-timing-function: linear;
            transition-delay: 1s;
        }
    </style>
Copy after login

Since it is animation, there must be changes. So we write two sentences of javascript:

    <script>
        function trans1(){
            let hcss1 = document.getElementById("hellocss");
            hcss1.style.width = "100px"; 
        }
    </script>
Copy after login

and then find an event to trigger this change. For example, we do it when the page is loaded:

  
    
Hello,HTML
Hello,CSS
<script> function trans1(){ let hcss1 = document.getElementById("hellocss"); hcss1.style.width = "100px"; } </script>
Copy after login

An article to quickly learn css through animation!

##Complete The code is as follows:



  
    
    <style>
        #hellocss {
            background-color: blue;
            color: yellow;
            width: 20px;
            transition-property: width;
            transition-duration: 5s;
            transition-timing-function: linear;
            transition-delay: 1s;
        }
    </style>
  
  
    
Hello,HTML
Hello,CSS
<script> function trans1(){ let hcss1 = document.getElementById("hellocss"); hcss1.style.width = "100px"; } </script>
Copy after login

After we become proficient, we can also abbreviate the four attributes into one:

transition: width 5s linear 1s;
Copy after login

If there is no delay, the fourth item does not need to be written. If the ease method of slow first and then fast is adopted, item 3 can also be omitted. If the first item is subject to any change, it can be written as all. But the second animation duration must be written. If not written, the default is 0 seconds, and there will be nothing.

All properties that can be calculated linearly can be used for animation. In addition to easy-to-understand coordinate attributes such as width, height, and position, color attributes are also often used in good scenes for animation. Let’s take a look at an animation process from yellow text on a blue background to black text on a white background:

An article to quickly learn css through animation!

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <style>
        #hellocss {
            background-color: blue;
            color: yellow;
            transition: all 10s linear 1s;
        }
    </style>
  </head>
  <body onload="trans1()">
    <div>Hello,HTML</div>
    <div id="hellocss">Hello,CSS</div>
    <script>
        function trans1(){
            let hcss1 = document.getElementById("hellocss");
            hcss1.style.backgroundColor = "white";
            hcss1.style.color="red"; 
        }
    </script>
  </body>
</html>
Copy after login

keyframes animation

The above transition is relatively simple. For example, how many times it needs to be looped, or how many times it needs to be changed back, or how many times it needs to be changed in the middle, etc., we need to specify more attributes. These needs are met by keyframes animation.

The advantage of keyframes animation is that the starting point and end point are specified in keyframes. There is no need to write events to change it. It is all done in css:

        @keyframes color_change{
            from {
                background-color: blue;
                color: yellow;
            }
            to {
                background-color: white;
                color: black;
            }
        }
Copy after login

然后我们在一个css选择器里面去引用定义好的keyframes动画,同时指定动画时长、变化曲线和延时:

        #hellocss {
            animation-name: color_change;
            animation-duration: 10s;
            animation-timing-function: linear;
            animation-delay: 1s;
        }
Copy after login

到了keyframes动画,我们终于可以指定播放多少次了,比如连播三次:

        #hellocss {
            animation-name: color_change;
            animation-duration: 10s;
            animation-timing-function: linear;
            animation-delay: 1s;
            animation-iteration-count: 3;
        }
Copy after login

甚至可以无限性地播放下去:

animation-iteration-count: infinite;
Copy after login

光循环播还不过瘾,我们还想先正着变,然后再变回来,我们可以将方向设为交替播放:

animation-direction: alternate;
Copy after login

把上面的综合在一起,大家跑起来看看:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <style>
      @keyframes color_change {
        from {
          background-color: blue;
          color: yellow;
        }
        to {
          background-color: white;
          color: black;
        }
      }
      #hellocss {
        animation-name: color_change;
        animation-duration: 5s;
        animation-timing-function: linear;
        animation-delay: 1s;
        animation-iteration-count: infinite;
        animation-direction: alternate;
      }
    </style>
  </head>
  <body>
    <div>Hello,HTML</div>
    <div id="hellocss">Hello,CSS</div>
  </body>
</html>
Copy after login

而其实呢,from和to,分别是0%和100%的别名,也可以这么写:

      @keyframes color_change {
        0% {
          background-color: blue;
          color: yellow;
        }
        100% {
          background-color: white;
          color: black;
        }
      }
Copy after login

这样我们可以增加百分比,让变化变得更有趣一些:

      @keyframes color_change {
        0% {
          background-color: blue;
          color: yellow;
        }
        50% {
          background-color: yellowgreen;
          color: red;
        }
        100% {
          background-color: white;
          color: black;
        }
      }
Copy after login

An article to quickly learn css through animation!

最后,如果想让动画播放暂停怎么办? 我们可以通过修改animationPlayState属性为paused来实现,比如我们让点击第一个div来实现暂停功能:

  <body>
    <div onclick="trans1()">Hello,HTML</div>
    <div id="hellocss">Hello,CSS</div>
    <script>
      function trans1() {
        let hcss1 = document.getElementById("hellocss");
        hcss1.style.animationPlayState = "paused";
      }
    </script>
  </body>
Copy after login

通过动画形象理解css属性

变形 - 圆角矩形

An article to quickly learn css through animation!

我们现在终于可以看看开篇时的第一个动画是如何写成的了:

      @keyframes color_change {
        0% {
          background-color: blue;
          color: yellow;
          border-radius: 0px;
        }
        50% {
          background-color: yellowgreen;
          color: red;
        }
        100% {
          background-color: palegoldenrod;
          color: black;
          border-radius: 100px;
        }
      }
Copy after login

平面移动:transform:translate属性

最简单的平移方式就是使用transform:translate属性。比如我们开篇的第二个动画:

An article to quickly learn css through animation!

我们先让变色的圆角矩形向下移100px,然后再右移100px:

            0% {
                background-color: blue;
                color: yellow;
                border-radius: 0px;
                transform:translate(0px,0px)
            }
            50% {
                background-color: yellowgreen;
                color: red;
                transform:translate(0px,100px)
            }
            100% {
                background-color: palegoldenrod;
                color: black;
                border-radius: 100px;
                transform:translate(100px,100px)
            }
        }
Copy after login

旋转:transform:rotate属性

最后我们看旋转属性。

An article to quickly learn css through animation!

        @keyframes color_change{
            0% {
                background-color: blue;
                color: yellow;
                border-radius: 0px;
                transform:translate(0px,0px);
                transform:rotate(0deg);
            }
            50% {
                background-color: yellowgreen;
                color: red;
                transform:translate(0px,100px);
                transform:rotate(90deg);
            }
            100% {
                background-color: palegoldenrod;
                color: black;
                border-radius: 100px;
                transform:translate(100px,100px);
                transform:rotate(180deg);
            }
        }
Copy after login

通过动画学习盒子模型

让我们回归基础,通过动画来了解盒子模型。

所谓盒子,最基础的就是宽和高。 这没啥可说的,来个宽高动画先体验一下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <style>
        @keyframes box_change {
            0% {
                height: 50px;
                width: 50px;
            }
            50% {
                height: 200px;
                width: 50px;
            }
            100% {
                height: 200px;
                width: 200px;
            }
        }
        .box1 {
            background-color: blue;
            color: yellow;
            opacity: 0.65;
            animation-name: box_change;
            animation-duration: 10s;
            animation-delay: 1s;
            animation-timing-function: ease;
            animation-iteration-count: infinite;
            animation-direction: alternate;
        }
    </style>
  </head>
  <body>
      <div class="box1">Hello Box</div>
  </body>
</html>
Copy after login

An article to quickly learn css through animation!

除了宽高之外,盒子有边框,边框内部有padding,边框外面还有margin。

包括边框在内,都分为top, bottom, left, right四个方向:

        border-width: 5px;
        border-top-color: #f5222d;
        border-bottom-color: #cf1322;
        border-left-color: #a8071a;
        border-right-color: #820014;
        padding: 10px;
        margin: 15px;
Copy after login

我们现在给边框加上颜色和形状,带着margin和padding动起来看看效果:

1An article to quickly learn css through animation!

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <style>
      @keyframes box_change {
        0% {
          height: 50px;
          width: 50px;
          border-style: solid;
        }
        50% {
          height: 200px;
          width: 50px;
          border-style: dotted;
        }
        100% {
          height: 200px;
          width: 200px;
          border-style: dashed;
        }
      }
      .box1 {
        background-color: blue;
        color: yellow;
        border-width: 5px;
        border-top-color: #f5222d;
        border-bottom-color: #cf1322;
        border-left-color: #a8071a;
        border-right-color: #820014;
        padding: 10px;
        margin: 15px;
        animation-name: box_change;
        animation-duration: 10s;
        animation-delay: 1s;
        animation-timing-function: ease;
        animation-iteration-count: infinite;
        animation-direction: alternate;
      }
    </style>
  </head>
  <body>
    <div class="box1">Hello Box</div>
  </body>
</html>
Copy after login

打开chrome的开发者工具,我们可以更清楚地看清content, padding, border, margin, 之间的关系:

1An article to quickly learn css through animation!

Border取5px只是为了让其更容易被识别,但是太丑了,我们将其改为2px。效果就好得多了:

1An article to quickly learn css through animation!

(学习视频分享:css视频教程

The above is the detailed content of An article to quickly learn css through animation!. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1666
14
PHP Tutorial
1273
29
C# Tutorial
1253
24
How to use bootstrap in vue How to use bootstrap in vue Apr 07, 2025 pm 11:33 PM

Using Bootstrap in Vue.js is divided into five steps: Install Bootstrap. Import Bootstrap in main.js. Use the Bootstrap component directly in the template. Optional: Custom style. Optional: Use plug-ins.

Understanding HTML, CSS, and JavaScript: A Beginner's Guide Understanding HTML, CSS, and JavaScript: A Beginner's Guide Apr 12, 2025 am 12:02 AM

WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

The Roles of HTML, CSS, and JavaScript: Core Responsibilities The Roles of HTML, CSS, and JavaScript: Core Responsibilities Apr 08, 2025 pm 07:05 PM

HTML defines the web structure, CSS is responsible for style and layout, and JavaScript gives dynamic interaction. The three perform their duties in web development and jointly build a colorful website.

How to write split lines on bootstrap How to write split lines on bootstrap Apr 07, 2025 pm 03:12 PM

There are two ways to create a Bootstrap split line: using the tag, which creates a horizontal split line. Use the CSS border property to create custom style split lines.

How to insert pictures on bootstrap How to insert pictures on bootstrap Apr 07, 2025 pm 03:30 PM

There are several ways to insert images in Bootstrap: insert images directly, using the HTML img tag. With the Bootstrap image component, you can provide responsive images and more styles. Set the image size, use the img-fluid class to make the image adaptable. Set the border, using the img-bordered class. Set the rounded corners and use the img-rounded class. Set the shadow, use the shadow class. Resize and position the image, using CSS style. Using the background image, use the background-image CSS property.

How to set up the framework for bootstrap How to set up the framework for bootstrap Apr 07, 2025 pm 03:27 PM

To set up the Bootstrap framework, you need to follow these steps: 1. Reference the Bootstrap file via CDN; 2. Download and host the file on your own server; 3. Include the Bootstrap file in HTML; 4. Compile Sass/Less as needed; 5. Import a custom file (optional). Once setup is complete, you can use Bootstrap's grid systems, components, and styles to create responsive websites and applications.

How to resize bootstrap How to resize bootstrap Apr 07, 2025 pm 03:18 PM

To adjust the size of elements in Bootstrap, you can use the dimension class, which includes: adjusting width: .col-, .w-, .mw-adjust height: .h-, .min-h-, .max-h-

How to use bootstrap button How to use bootstrap button Apr 07, 2025 pm 03:09 PM

How to use the Bootstrap button? Introduce Bootstrap CSS to create button elements and add Bootstrap button class to add button text

See all articles