Table of Contents
Getting started with GSAP
完善动画
结论
参考文章
Home Web Front-end HTML Tutorial Quickly use svg to draw beautiful animations!

Quickly use svg to draw beautiful animations!

Feb 14, 2021 am 09:13 AM
css html javascript front end

Quickly use svg to draw beautiful animations!

I often see heroes using SVG to draw incredible animations on Codepen. I have always been curious about how they work. I always feel that this needs to be corrected. Only if you have a thorough understanding of SVG and draw those SVG patterns yourself can you make it move.

But that’s not the case. Today I will teach you a simple trick that will allow you to quickly implement an SVG animation!

Open Codepen, click the build button in the interface, you can use animation to build a house, and let it rise with smoke!

Demo address: https://codepen.io/johnYu243/pen/bGBVEwv

Quickly use svg to draw beautiful animations!

##Looking for exquisite svg patterns

Since we can’t draw it ourselves, we will look for ready-made libraries. There are many svg libraries. Websites such as Flaticon, iconfont, Iconfinder or icons8 will provide many free svg patterns.

Quickly use svg to draw beautiful animations!

Analyze svg pattern

Open

devtoolObserve the svg pattern, you will see the following The result:

Quickly use svg to draw beautiful animations!

elementpath and circle are both DOM elements of svg , respectively represent the lines and circles in the svg pattern.

For example:

1

<path></path>

Copy after login
The content of d in the above code: M represents moving the pen to (10, 25), then L draws a line to (10, 75), and finally Go back to the starting point and draw a triangle.

Through devtool, we can see which part of the pattern each

path corresponds to:

Quickly use svg to draw beautiful animations!

At this time, an idea should be formed, since We can know which part of the pattern each element corresponds to, and we can operate on the DOM elements we want to animate!

TimelineLite/TimelineMax Tool

If you use CSS or JavaScript to process animations by yourself simply through id and className, it is still quite difficult, and more importantly, it takes a lot of time

So we have to borrow tools. Timeline (Lite|Max) and TweenMax are well-known

GreenSock Animation Platform (GSAP for short) The createable timeline (timeline) launched by the well-known GreenSock Animation Platform (referred to as GSAP) is used as a container for animation or other timelines. This makes it easy to control the entire animation and precisely manage timing.

GSAP even provides us with Ease Visualizer to show the effect of each Ease function, and also attaches the code:

Quickly use svg to draw beautiful animations!

Demo address: https://codepen.io/johnYu243/pen/jOVbMzX

A few simple lines of code can achieve the following effects:

Quickly use svg to draw beautiful animations!

Getting started with GSAP

GSAP’s API function is very powerful, and there are related communities: Official website documentation, Forum, TimelineMax Chinese Manual

In the initial house construction example, I mainly used TimelineMax’s from and staggerFrom, which Both APIs only need to set initial values, and they will complete the tween animation within the specified time:

1

2

3

4

5

  tl.from("#House > rect:nth-child(24)", 1, {

      scaleX: 0,

      transformOrigin: "center",

      ease: Power2.easeOut

    })

Copy after login

In this step we will CSS Selector #House > rect:nth-child(24) This element starts from scaleX being 0, with center as the starting point for deformation, and uses Power2.easeOut to return to the original state within one second and perform compensation. animation.

1

2

3

4

5

6

7

8

9

10

11

12

    .staggerFrom(

      ["#House > path:nth-child(34)""#House > path:nth-child(32)"],

      0.8,

      {

        scaleY: 0,

        transformOrigin: "bottom",

        ease: Bounce.easeOut,

        stagger: 0.2

      },

      0,

      "scene1+=0.5"

    )

Copy after login

is similar to from, except that staggerFrom can put multiple CSS Selectors at once, and use the stagger attribute to set the Selector in the array At what time difference will it appear?

For detailed API parameters, please refer to the Official Document

Then go back to our SVG, and with the help of devtool, we need to remove the CSS Selector# of the internal elements of the svg. ## It's very easy. Find the corresponding DOM element in the element panel, right-click, select Copy -> Copy selector, and you can directly copy it to the CSS Selector of the element:

Quickly use svg to draw beautiful animations!

现在我们能取得svg 中任意部分的CSS Selector,也知道怎么用GSAP API 来进行补间动画,现在是时候将其结合起来!

我们先调整下基本布局,一般在空白Html内直接放入svg时,图案大多会紧靠页面左上角,我们可以套用个margin: 0 auto将其置中,看起来会顺眼一些,你也能额外加些padding。我们在页面添加一个按钮来调用动画:

1

2

3

4

5

6

7

8

9

10

11

<!--html part-->

<button onclick="animateBike()"> Build! </button>

<!--css part-->

<style>

#Capa_1 {

  margin: 0 auto;

  display: block;

  width: 256px;

  height: 100%;

}

</style>

Copy after login

接着我们使用TimelineMax提供的staggerFrom函数,利用devtool将滑板车的轮子部分找出来,复制它们的CSS Selector,放入staggerFrom函数参数中,设定x与y轴的scale都从0开始,由center增长,采用Bounce.easeOut的ease function ,而四个Selector间以stagger: 0.2的属性值作为补间动画出现的时间差:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

const tl = new TimelineMax();

tl.staggerFrom(

    [

      "#Capa_1 > g > path:nth-child(1)",

      "#Capa_1 > circle:nth-child(7)",

      "#Capa_1 > path:nth-child(6)",

      "#Capa_1 > circle:nth-child(5)"

    ],

    1,

    {

      scaleY: 0,

      scaleX: 0,

      transformOrigin: "center",

      ease: Bounce.easeOut,

      stagger: 0.2

    }

  )

Copy after login

简单几行代码,就能让我们的滑板车动起来!

演示地址:https://codepen.io/johnYu243/pen/poNjNzz

Quickly use svg to draw beautiful animations!

补间是一个术语,用于描述逐帧序列,有时也称为"中间"。 在那个地方,一个动作导致下一个动作产生一个流畅的动作。

完善动画

你可以把TimelineMax想像成时间轴,动画按指定顺序执行,而staggerFrom则可以同时让多个DOM元素以微小时间差的顺序启动,另外我们还可以设置一些Flag来指定要等到哪几个动画完成后,才接续其他动画。

最后,发挥自己的创意,使用各种API打出一套组合拳:

演示地址:https://codepen.io/johnYu243/pen/yLVYVey

Quickly use svg to draw beautiful animations!

结论

看到这里,跃跃欲试了吗?

总之,我自己觉得蛮有趣的,希望或多或少对读到这篇文章的人有点帮助。

最后给大家分享一个很酷的demo,来自我的文章封面

参考文章

GreenSock Animation Platform

How to Create Beautiful SVG Animations Easily

更多编程相关知识,请访问:编程教学!!

The above is the detailed content of Quickly use svg to draw beautiful animations!. 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

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 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)

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 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

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 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 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 view the date of bootstrap How to view the date of bootstrap Apr 07, 2025 pm 03:03 PM

Answer: You can use the date picker component of Bootstrap to view dates in the page. Steps: Introduce the Bootstrap framework. Create a date selector input box in HTML. Bootstrap will automatically add styles to the selector. Use JavaScript to get the selected date.

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 verify bootstrap date How to verify bootstrap date Apr 07, 2025 pm 03:06 PM

To verify dates in Bootstrap, follow these steps: Introduce the required scripts and styles; initialize the date selector component; set the data-bv-date attribute to enable verification; configure verification rules (such as date formats, error messages, etc.); integrate the Bootstrap verification framework and automatically verify date input when form is submitted.

See all articles