Home > Article > Web Front-end > Add animation to web pages using Velocity.js
In today’s world of web development, animation has become an integral part of website interfaces. They help enhance the user experience of a website, and in this article, we will learn how to add beautiful animations to web pages using Velocity.js.
VelocityJS is a JavaScript animation engine that provides us with very fast animations that can be used in web pages. It has become one of the leading animation engines, and there are several reasons for its success. I have mentioned some of the most important reasons that make it a very good choice when you decide to choose an animation engine for your web pages.
Listed below are some important features of Velocity.js -
Better Performance - In terms of speed, it is as fast as CSS and offers better performance compared to its main competitor jQuery, especially on mobile devices superior. In the past, some people also discussed that jQuery core animation should be replaced by VelocityJS. Also, another point in its favor is that CSS animations simply don't have enough browser support, while VelocityJS animations were reliable as early as IE8.
RunSequence - Think of runSequence as something that allows you to perform a bunch of animations in a continuous fashion, it will produce better results and be a more efficient Methods. This is an elegant approach compared to chaining multiple animation functions usually found in jQuery animations.
Learning Curve - The learning curve of Velocity.JS is not very steep as people who know jQuery can easily start using it as it provides similar syntax.
Now that we understand the basic concepts of Velocity.JS, let’s try creating a number of different animations to understand how Velocity.JS animations work.
The first thing we need is to create a simple HTML-JS project, where the code for Velocity.JS will be written primarily in JavaScript files, and the HTML file will serve as our starting point for importing Velocity.JS dependencies.
Create files named index.html and script.js in your favorite code editor or IDE. Consider the command shown below, which will help you create the index.html and script.js files.
touch index.html touch script.js
Note - If touch does not work, then you can use the vi command.
After creating these two files, the next step is to place the following code into your index.html file.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Velocity - Examples</title> </head> <body> <p id="sample-p"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. </p> <button id="a-button"> Click me! </button> <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="https://cdn.jsdelivr.net/velocity/1.1.0/velocity.min.js"></script> <script> $('#a-button').click(function() { var $element = $("#sample-p"); $element.velocity({ width: "50px", left: "500px" }); }); </script> </body> </html>
In the above code, you need to pay attention to several points. The first is that you need to ensure that you can import the Velocity.JS file in the code. We do this within the
tags in the code above.Consider the code snippet shown below.
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script src="https://cdn.jsdelivr.net/velocity/1.1.0/velocity.min.js"></script>
These two lines allow us to import jQuery and Velocity.JS into the code, although we only need Velocity.JS, you can call import one or both. Since it was interesting to compare Velocity and jQuery, I imported them both.
Now we are going to select an element from the
tag and use it to create some animations. Consider the code snippet shown below.<p id="sample-p"> Lorem ipsum, dolor sit amet consectetur adipisicing elit. </p> <button id="a-button"> Click me! </button>
In the above code snippet, we can see that there are two different
tags, and in each tag, we have aNow, we write the code in script.js. The first thing we will do is use a simple Velocity object, in which we will assign a specified width and height to the
tag using Velocity.js.
Consider the script.js code shown below.
let $element = $("#sample-p"); $element.velocity({ width: "50px", left: "500px" });
In the code above, we specify that we want the $element, which is just a
tag pointing to the HTML code to have the specified width and height.
When you run the HTML code, you should see that the content of the
tag has the specified width and height.
In the above example, we ensure that the width of the
tag content changes to 500px, but suppose that after a certain delay, we want to ensure that the width of the
tag or our $element changes to 200px. We can achieve the same with the help of the code shown below.
let $element = $("#sample-p"); $element.velocity({ width: "200px" }, { duration: 500, delay: 1000 });
Now, if we run the HTML file, then after a delay of 1 second, the width of $element will change to 200px.
So far in these two examples, we've learned how to run simple animations using Velocity.JS. Now let's focus on the part where we want to run multiple animations on a single element.
If we want to run multiple animations, we can run them one by one, or chain them, which will allow them to run in the order we define the chain. Consider the script.js code shown below.
let $element = $("#sample-p"); // chaining $element // makes the $element of height of 300px over 1000ms .velocity({ height: 400 }, { duration: 1000 }) /* makes the $element to animate to the left position of 200px over 600ms after the width is finished animating */ .velocity({ top: 200 }, { duration: 600 }) // fading the element after it's done moving .velocity({ opacity: 0 }, { duration: 200 });
在上面的代码中,我们有不同的动画,它们相互链接,这是您在探索更多 Velocity.JS 示例时会发现的更常见的模式之一。
现在,我们来讨论一下 Velocity.JS 中的一个常用选项,即 opacity。在下一个示例中,我们将探讨如何在具有不同选项的元素上使用不透明度。
第一个简单的场景是引入带有慢速选项的不透明动画。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); $element.velocity({ opacity: 0 }, { duration: "slow" });
在上面的代码中,我们确保元素的不透明度达到 0,并且持续时间很慢。
在下一个示例中,我们甚至可以决定希望元素具有 0 不透明度的确切时间延迟。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); $element.velocity({ opacity: 0 }, { duration: 5000 });
在上面的代码中,我们确保元素的不透明度为 0,持续时间为 5000 毫秒。
一旦特定的动画完成,我们还可以记录 div 的元素和附加属性。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); // opacity $element.velocity({ opacity: 0 }, { /* Log all the animated divs. */ complete: function(elements) { console.log(elements); } });
在上面的代码中,我们正在打印将打印附加属性的元素以及控制台中的所有元素。
现在让我们看看如何使用 Velocity.js 获得循环效果。通过循环,我想说的是如何在特定循环中执行特定动画,并且您将可以访问该循环的不同属性,例如要执行循环的次数、延迟时间等等。
让我们从一个非常基本的示例开始。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); // looping $element.velocity({ height: "5em" }, { loop: 2 });
在上面的代码中,我们创建了一个动画,使“$element”项目的高度为 5em,并且它将循环运行两次。
现在假设我们想要运行一个类似的示例,但同时我们想要确保当我们循环返回时,我们也应该有一个延迟。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); // looping $element.velocity( { height: "+=10em" }, { loop: 4, /* Wait 300ms before alternating back. */ delay: 300 } );
在上面的代码中,我们创建了一个动画,使“$element”项目的高度为 10em,并且从一个循环返回到另一个循环时它将循环运行四次,延迟 300 毫秒.
现在让我们看看如何使用 Velocity.JS 获得淡入淡出效果。考虑下面所示的 script.js 代码。
let $element = $("#sample-p"); // fading $element .velocity("fadeIn", { duration: 1500 }) .velocity("fadeOut", { delay: 500, duration: 1500 });
在上面的代码中,我们使用了 Velocity.JS 中的 fadeIn 和 fadeOut 选项。
在本教程中,我们通过多个示例演示了如何使用 Velocity.JS 在其中添加不同的动画。
The above is the detailed content of Add animation to web pages using Velocity.js. For more information, please follow other related articles on the PHP Chinese website!