博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单动画原理
阅读量:5056 次
发布时间:2019-06-12

本文共 1783 字,大约阅读时间需要 5 分钟。

function FX(){    this.init.apply(this, arguments);  }    FX.prototype.init = function(animationFunction, opts) {    this._animationFunction = animationFunction;    this._duration = opts && opts.duration || 250;    this._interval = opts && opts.interval || 40;    this._tween = opts && opts.tween || function(delta) {           var x = 1 - delta,            elasticity = 0.25,            value = 1 - Math.pow(x, 4) + x * x * Math.sin(delta * delta * Math.PI * elasticity);        return value      };    this._onDone = opts && opts.onDone || function (){      console &&  console.log('onDone');    }  }    FX.prototype.start = function(reverse) {    var self = this;    this._playing = true;    this._startT = new Date().getTime();    this._reverse = reverse;    this._onInterval();    this._intervalID = setInterval(function (){     self._onInterval.call(self);    }, this._interval);  }    FX.prototype.stop = function() {    this._playing = false;    clearInterval(this._intervalID);  }    FX.prototype.isGoing = function() { return this._playing }    FX.prototype._onInterval = function() {    var deltaT = new Date().getTime() - this._startT,       duration = this._duration;    if (deltaT >= duration) {      this.stop();      this._animationFunction(this._tween(this._reverse ? 0 : 1))      if (this._onDone) { this._onDone() }      return    }    var delta = deltaT / duration;    if (this._reverse) { delta = 1 - delta }    this._animationFunction(this._tween(delta))  } var fx= new FX(function (x){   document.getElementById('testBox').style.left = x*300+'px'; }); document.getElementById('testBtn').onclick = function (){     document.getElementById('testBox').style.left='0px'    fx.start(); };

  

test
点我

转载于:https://www.cnblogs.com/zhuzf/archive/2013/01/30/2883405.html

你可能感兴趣的文章
Bypass pattern lock on Sony Xperia Z2 and backup all data
查看>>
又黑我等程序猿
查看>>
AppScan入门工作原理详解
查看>>
夺命雷公狗---node.js---6net模块玩telnet通信(下)
查看>>
夺命雷公狗---linux NO:24 linux下的应用程序编译安装
查看>>
jquery选中radio或checkbox的正确姿势
查看>>
arm 工作模式
查看>>
关于 C# 的 lock
查看>>
EChats+Ajax之柱状图的数据交互
查看>>
DDR DSRAM
查看>>
udp绑定信息
查看>>
C# 数组、ArrayList和List
查看>>
关于 小程序 ios 转时间戳的兼容性 问题
查看>>
python拼接参数不确定的SQL时防注入问题--条件语句最后拼入
查看>>
全文检索引擎Sphinx之初体验
查看>>
JQuery EasyUI combobox动态添加option
查看>>
PHP如何关闭notice级别的错误提示
查看>>
for,forEach,for in ,for of,$.each和$().each应用
查看>>
随机生成四则运算2
查看>>
Googl地图找房总结
查看>>