ES6 |动画
在 ES6 JavaScript 中,动画可以通过两种方式完成。 ES6 JavaScript 可用于移动 使用 setInterval() 方法:该方法传统上用于通过 JavaScript 产生动画效果。这依赖于重复执行一些代码来逐帧更改元素。 示例:如果函数fn 产生元素样式的变化,则可以使用 setInterval(函数, t) 在每个时间间隔后产生元素样式的渐变。如果时间间隔足够小,则变化看起来是连续的,从而产生动画效果。 输出: 缺点: 使用 requestAnimationFrame() 方法:使用setInterval()遇到的缺点导致引入 requestAnimationFrame() 方法。该方法允许您在下一个可用的屏幕重绘上执行代码,从而与用户的浏览器和硬件同步以对屏幕进行更改。 这里的终止是由函数cancelAnimationFrame() 引起的。动画的总体功能及其终止如下所示。 通常,requestAnimationFrame() 以 60 fps 运行。为了减慢它的速度,我们可以使用 setTimeout()函数。其功能如下图所示。 示例:这里减慢/加速动画最舒适的方法是调整每一帧的变化幅度。 输出: 注意:这两种方法在使用时都可以用来创建非常复杂的动画(例如,可以在游戏开发中使用)。anim = setInterval(fn, t);
The function fn is called after every t milliseconds.
clearInterval(anim);
It terminates the above process.
html
GeeksforGeeks
html
GeeksforGeeks
function makeframe {
..... ......
requestAnimationFrame(makeframe); // Recursive call
}
makeframe(); // Initiation
function makeframe {
..... ......
if(.. ..){cancelAnimationFrame(anim);} // Termination
anim = requestAnimationFrame(makeframe); // Recursive call
}
makeframe(); // Initiation
function makeframe {
var rate = fps;
setTimeout(function() { // Timeout use
..... ......
if(.. ..) {cancelAnimationFrame(anim);} // Termination
anim = requestAnimationFrame(makeframe); // Recursive call
}, 1000/rate);
}
makeframe(); // Initiation
html
GeeksforGeeks
支持的浏览器: ES6动画支持的浏览器如下: