| 1 |
- define(function(n,e,t){"use strict";function r(n,e,t,r,i){var o=function(e){var r=1-e;return 3*r*r*e*n+3*r*e*e*t+e*e*e},a=function(n){var t=1-n;return 3*t*t*n*e+3*t*n*n*r+n*n*n},s=function(e){var r=1-e;return 3*(2*(e-1)*e+r*r)*n+3*(-e*e*e+2*r*e)*t};return function(n){var e,t,r,u,c,f,p=n;for(r=p,f=0;f<8;f++){if(u=o(r)-p,Math.abs(u)<i)return a(r);if(c=s(r),Math.abs(c)<1e-6)break;r-=u/c}if(e=0,t=1,r=p,r<e)return a(e);if(r>t)return a(t);for(;e<t;){if(u=o(r),Math.abs(u-p)<i)return a(r);p>u?e=r:t=r,r=.5*(t-e)+e}return a(r)}}function i(n){var e=this;e.cfg=o.mix({easing:"linear"},n)}var o=n("./util"),a=n("./base"),s=n("./easing"),u=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(n){window.setTimeout(n,1e3/60)},c=["webkit","moz","ms","o"],f=window.cancelAnimationFrame;if(!f)for(var p=0;p<c.length;p++)(window[c[p]+"CancelAnimationFrame"]||window[c[p]+"CancelRequestAnimationFrame"])&&(f=window[c[p]+"CancelAnimationFrame"]||window[c[p]+"CancelRequestAnimationFrame"]);return f=f||window.clearTimeout,i.MIN_DURATION=1,o.extend(i,a,{reset:function(n){var e=this;o.mix(e.cfg,n),e.isfinished=!1,e.percent=0,e._stop=null},run:function(){var n=this,e=n.cfg.duration;if(e<=i.MIN_DURATION&&(n.isfinished=!0,n.trigger("run",{percent:1}),n.trigger("end",{percent:1})),!n.isfinished){n._hasFinishedPercent=n._stop&&n._stop.percent||0,n._stop=null,n.start=Date.now(),n.percent=0;var t=1e3/60/e/4,o=s[n.cfg.easing];n.easingFn=r(o[0],o[1],o[2],o[3],t),n._run()}},_run:function(){var n=this;f(n._raf),n._raf=u(function(){if(n.now=Date.now(),n.duration=n.now-n.start>=n.cfg.duration?n.cfg.duration:n.now-n.start,n.progress=n.easingFn(n.duration/n.cfg.duration),n.percent=n.duration/n.cfg.duration+n._hasFinishedPercent,n.percent>=1||n._stop){n.percent=n._stop&&n._stop.percent?n._stop.percent:1,n.duration=n._stop&&n._stop.duration?n._stop.duration:n.duration;var e={percent:n.percent};return n.trigger("stop",e),void(n.percent>=1&&(n.isfinished=!0,n.trigger("end",{percent:1})))}n.trigger("run",{percent:n.progress,originPercent:n.percent}),n._run()})},stop:function(){var n=this;n._stop={percent:n.percent,now:n.now},f(n._raf)}}),"object"==typeof t&&t.exports?void(t.exports=i):i});
|