二、即插即用的缓动小算法

原理如下:

假设要从数值A变化到数值B,如果是线性运动,则每次移动距离是一样;如果是缓动,每次移动距离不一样。那如何才能不一样呢?很简单,按比例移动就可以。

例如:每次移动剩余距离的一半。

对吧,超容易理解的。

比方说:你和初恋之间距离是64,每秒移动一半,则,你们之间的距离下一秒就是32, 再下一秒就是16,然后8,然后4,然后2,然后1,然后……你们就在一起了。你们在一起的这个过程就是一个典型的先快后慢的缓动运动过程,如下示意图:

位置移动标注示意图

用一个简单的公式表示就是:

A = A + (B - A) / 2

翻译一下就是:

我下一秒的位置 = 现在位置 + 现在和初恋之间距离的一半

是不是很好理解。

原文链接:http://www.zhangxinxu.com/wordpress/2017/01/share-a-animation-algorithm-js/