美文网首页
缓动的原理与实现

缓动的原理与实现

作者: Alkaidx | 来源:发表于2017-05-20 21:25 被阅读58次

动画就是以一定的频率去改变元素的属性,使之运动起来,最普通的动画就是匀速的动画,每次增加固定的值。缓动就是用来修改每次增加的值,让其按照不规律的方式增加,实现动画的变化。

程序实现缓动

没有加速度的线性运动

数学公式为:f(x)=x, 代码如下:

AnimationTimer.makeLinear = function () {
   return function (percentComplete) {
      return percentComplete;
   };
};````
逐渐加速的缓入运动

数学公式为:f(x)=x^2, 代码如下:

AnimationTimer.makeEaseIn = function (strength) {
return function (percentComplete) {
return Math.pow(percentComplete, strength*2);
};
};````
逐渐减速的缓出运动

数学公式为:f(x)=1-(1-x)^2, 代码如下:

AnimationTimer.makeEaseOut = function (strength) {
   return function (percentComplete) {
      return 1 - Math.pow(1 - percentComplete, strength*2);
   };
};````
缓入缓出运动

数学公式为:f(x)=x-sin(x*2π)/(2π), 代码如下:

AnimationTimer.makeEaseInOut = function () {
return function (percentComplete) {
return percentComplete - Math.sin(percentComplete2Math.PI) / (2*Math.PI);
};
};````
弹簧运动

数学公式为:f(x)=(1-cos(x*Npasses * π) * (1-π))+x, Npassed表示运动物体穿越中轴的次数。 代码如下:

AnimationTimer.makeElastic = function (passes) {
   passes = passes || 3;
   return function (percentComplete) {
       return ((1-Math.cos(percentComplete * Math.PI * passes)) *
               (1 - percentComplete)) + percentComplete;
   };
};

弹跳运动

Nbounces表示运动物体被弹起的总次数,弹起的次数为偶数的时候,数学公式为:
f(x)=(1=cos(x Nbounces π) * (1-π))+x

弹起的次数为奇数的时候,数学公式为:
f(x)=2-(((1-cos(x π Nbounces)) * (1-x)+x)

代码如下:

AnimationTimer.makeBounce = function (bounces) { 
    var fn = AnimationTimer.makeElastic(bounces); 
    return function (percentComplete) { 
            percentComplete = fn(percentComplete); 
            return percentComplete <= 1 ? percentComplete : 2-percentComplete; 
    }; 
}; 
```

相关文章

  • 缓动的原理与实现

    动画就是以一定的频率去改变元素的属性,使之运动起来,最普通的动画就是匀速的动画,每次增加固定的值。缓动就是用来修改...

  • 动画与缓动

  • 动画和封装

    动画的种类 闪现匀速缓动 动画原理 盒子的位置 = 盒子本身所在的位置+步长。 缓动动画 三个函数 Math.ce...

  • 缓动返回顶部js实现

  • vue 实现数字缓动效果

    经常遇到这样的效果,数字的变化,比如从 0 到 500 这样的。直接变当然是可以的,但是加一些缓动效果用户体验会...

  • Web API -- 动画函数封装

    **1.1. **动画函数封装 1.1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢...

  • webAPI-day-06(动画函数封装,常见网页特效,触屏事件

    1.1. 动画函数封装 1.1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢停下来 ...

  • RTOS基础(邮箱)

    邮箱的原理与创建 问题概述 设计原理 设计实现 邮箱的获取和释放 设计原理 设计实现 邮箱的清空与删除 设计原理 ...

  • 【前端 JavaScript WebAPI】 06 - 缓动动画

    1. 动画函数封装 1.1 缓动效果原理 缓动动画就是让元素运动速度有所变化,最常见的是让速度慢慢停下来。 1.2...

  • 可视化

    饼图 弹性动画 缓动跟随 弹性动画 动画原理根据上面的原理我们知道,你眼前所看到图像正在以每秒60次的频率刷新,由...

网友评论

      本文标题:缓动的原理与实现

      本文链接:https://www.haomeiwen.com/subject/mahvattx.html