From a05ebbff06371484f35bb042da639b47fb187440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=92=D0=B0?= =?UTF-8?q?=D1=81=D0=B8=D0=BB=D1=8C=D0=B5=D0=B2?= Date: Sat, 16 Mar 2024 18:27:04 +0300 Subject: [PATCH] dist --- dist/fast-ease.cjs.js | 44 +++++++++++++++++++++++++++------------ dist/fast-ease.cjs.min.js | 2 +- dist/fast-ease.esm.min.js | 2 +- dist/fast-ease.js | 41 +++++++++++++++++++++++++----------- dist/fast-ease.min.js | 2 +- package.json | 2 +- 6 files changed, 64 insertions(+), 29 deletions(-) diff --git a/dist/fast-ease.cjs.js b/dist/fast-ease.cjs.js index c3b85b3..57b3435 100644 --- a/dist/fast-ease.cjs.js +++ b/dist/fast-ease.cjs.js @@ -22,38 +22,55 @@ __export(src_exports, { animate: () => animate, animateBatch: () => animateBatch, default: () => src_default, - easings: () => easings + easings: () => easings, + stop: () => stop }); module.exports = __toCommonJS(src_exports); -function animate(callback, ease, duration = 1e3, from = 0, to = 300) { +var running = {}; +var finish = {}; +var id = 0; +var animate = (callback, ease, duration = 1e3, from, to, done) => { + id++; var start = performance.now(); var end = start + duration; - var id; + done && (finish[id] = done); function frame(now) { var delta = now - start; if (delta >= duration) - return cancelAnimationFrame(id); + return cancelAnimationFrame(running[id]) || delete running[id] && delete finish[id] && done && done(id); callback(from + (to - from) * ease(delta / duration)); - id = requestAnimationFrame(frame); + running[id] = requestAnimationFrame(frame); } - return id = requestAnimationFrame(frame); -} -function animateBatch(callback, ease, duration = 1e3, batch) { + running[id] = requestAnimationFrame(frame); + return id; +}; +var animateBatch = (callback, ease, duration = 1e3, batch, done) => { + id++; var start = performance.now(); var end = start + duration; - var id; var interpolated = new Array(batch[0].length); + done && (finish[id] = done); function frame(now) { var delta = now - start; if (delta >= duration) - return cancelAnimationFrame(id); + return cancelAnimationFrame(running[id]) || delete running[id] && delete finish[id] && done && done(id); var easing = ease(delta / duration); batch.forEach((value, index) => interpolated[index] = value[0] + (value[1] - value[0]) * easing); callback(...interpolated); - id = requestAnimationFrame(frame); + running[id] = requestAnimationFrame(frame); + } + running[id] = requestAnimationFrame(frame); + return id; +}; +var stop = (id2) => { + cancelAnimationFrame(running[id2]); + delete running[id2]; + if (finish[id2]) { + var done = finish[id2]; + delete finish[id2]; + done(id2); } - return id = requestAnimationFrame(frame); -} +}; var easings = {}; easings.linear = function(n) { return n; @@ -219,5 +236,6 @@ easings.inOutElastic = function(n) { var src_default = { animate, animateBatch, + stop, easings }; diff --git a/dist/fast-ease.cjs.min.js b/dist/fast-ease.cjs.min.js index 54e5ca2..92fa9ee 100644 --- a/dist/fast-ease.cjs.min.js +++ b/dist/fast-ease.cjs.min.js @@ -1 +1 @@ -var p=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var P=(t,r)=>{for(var i in r)p(t,i,{get:r[i],enumerable:!0})},Q=(t,r,i,e)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of I(r))!O.call(t,a)&&a!==i&&p(t,a,{get:()=>r[a],enumerable:!(e=B(r,a))||e.enumerable});return t};var q=t=>Q(p({},"__esModule",{value:!0}),t);var A={};P(A,{animate:()=>m,animateBatch:()=>l,default:()=>d,easings:()=>u});module.exports=q(A);function m(t,r,i=1e3,e=0,a=300){var s=performance.now(),c=s+i,n;function o(h){var f=h-s;if(f>=i)return cancelAnimationFrame(n);t(e+(a-e)*r(f/i)),n=requestAnimationFrame(o)}return n=requestAnimationFrame(o)}function l(t,r,i=1e3,e){var a=performance.now(),s=a+i,c,n=new Array(e[0].length);function o(h){var f=h-a;if(f>=i)return cancelAnimationFrame(c);var v=r(f/i);e.forEach((M,w)=>n[w]=M[0]+(M[1]-M[0])*v),t(...n),c=requestAnimationFrame(o)}return c=requestAnimationFrame(o)}var u={};u.linear=function(t){return t};u.inQuad=function(t){return t*t};u.outQuad=function(t){return t*(2-t)};u.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};u.inCube=function(t){return t*t*t};u.outCube=function(t){return--t*t*t+1};u.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};u.inQuart=function(t){return t*t*t*t};u.outQuart=function(t){return 1- --t*t*t*t};u.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};u.inQuint=function(t){return t*t*t*t*t};u.outQuint=function(t){return--t*t*t*t*t+1};u.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};u.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};u.outSine=function(t){return Math.sin(t*Math.PI/2)};u.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};u.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};u.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};u.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};u.inCirc=function(t){return 1-Math.sqrt(1-t*t)};u.outCirc=function(t){return Math.sqrt(1- --t*t)};u.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};u.inBack=function(t){var r=1.70158;return t*t*((r+1)*t-r)};u.outBack=function(t){var r=1.70158;return--t*t*((r+1)*t+r)+1};u.inOutBack=function(t){var r=2.5949095;return(t*=2)<1?.5*(t*t*((r+1)*t-r)):.5*((t-=2)*t*((r+1)*t+r)+2)};u.inBounce=function(t){return 1-u.outBounce(1-t)};u.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};u.inOutBounce=function(t){return t<.5?u.inBounce(t*2)*.5:u.outBounce(t*2-1)*.5+.5};u.inElastic=function(t){var r,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,r=e/4):r=e*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/e)))};u.outElastic=function(t){var r,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,r=e/4):r=e*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-r)*(2*Math.PI)/e)+1)};u.inOutElastic=function(t){var r,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,r=e/4):r=e*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/e)):i*Math.pow(2,-10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/e)*.5+1)};var d={animate:m,animateBatch:l,easings:u}; +var v=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var q=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var E=(t,r)=>{for(var u in r)v(t,u,{get:r[u],enumerable:!0})},F=(t,r,u,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of q(r))!A.call(t,n)&&n!==u&&v(t,n,{get:()=>r[n],enumerable:!(i=Q(r,n))||i.enumerable});return t};var C=t=>F(v({},"__esModule",{value:!0}),t);var g={};E(g,{animate:()=>w,animateBatch:()=>B,default:()=>x,easings:()=>e,stop:()=>I});module.exports=C(g);var o={},f={},a=0,w=(t,r,u=1e3,i,n,c)=>{a++;var M=performance.now(),l=M+u;c&&(f[a]=c);function s(p){var h=p-M;if(h>=u)return cancelAnimationFrame(o[a])||delete o[a]&&delete f[a]&&c&&c(a);t(i+(n-i)*r(h/u)),o[a]=requestAnimationFrame(s)}return o[a]=requestAnimationFrame(s),a},B=(t,r,u=1e3,i,n)=>{a++;var c=performance.now(),M=c+u,l=new Array(i[0].length);n&&(f[a]=n);function s(p){var h=p-c;if(h>=u)return cancelAnimationFrame(o[a])||delete o[a]&&delete f[a]&&n&&n(a);var O=r(h/u);i.forEach((m,P)=>l[P]=m[0]+(m[1]-m[0])*O),t(...l),o[a]=requestAnimationFrame(s)}return o[a]=requestAnimationFrame(s),a},I=t=>{if(cancelAnimationFrame(o[t]),delete o[t],f[t]){var r=f[t];delete f[t],r(t)}},e={};e.linear=function(t){return t};e.inQuad=function(t){return t*t};e.outQuad=function(t){return t*(2-t)};e.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};e.inCube=function(t){return t*t*t};e.outCube=function(t){return--t*t*t+1};e.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};e.inQuart=function(t){return t*t*t*t};e.outQuart=function(t){return 1- --t*t*t*t};e.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};e.inQuint=function(t){return t*t*t*t*t};e.outQuint=function(t){return--t*t*t*t*t+1};e.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};e.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};e.outSine=function(t){return Math.sin(t*Math.PI/2)};e.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};e.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};e.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};e.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};e.inCirc=function(t){return 1-Math.sqrt(1-t*t)};e.outCirc=function(t){return Math.sqrt(1- --t*t)};e.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};e.inBack=function(t){var r=1.70158;return t*t*((r+1)*t-r)};e.outBack=function(t){var r=1.70158;return--t*t*((r+1)*t+r)+1};e.inOutBack=function(t){var r=2.5949095;return(t*=2)<1?.5*(t*t*((r+1)*t-r)):.5*((t-=2)*t*((r+1)*t+r)+2)};e.inBounce=function(t){return 1-e.outBounce(1-t)};e.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};e.inOutBounce=function(t){return t<.5?e.inBounce(t*2)*.5:e.outBounce(t*2-1)*.5+.5};e.inElastic=function(t){var r,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,r=i/4):r=i*Math.asin(1/u)/(2*Math.PI),-(u*Math.pow(2,10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/i)))};e.outElastic=function(t){var r,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,r=i/4):r=i*Math.asin(1/u)/(2*Math.PI),u*Math.pow(2,-10*t)*Math.sin((t-r)*(2*Math.PI)/i)+1)};e.inOutElastic=function(t){var r,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,r=i/4):r=i*Math.asin(1/u)/(2*Math.PI),(t*=2)<1?-.5*(u*Math.pow(2,10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/i)):u*Math.pow(2,-10*(t-=1))*Math.sin((t-r)*(2*Math.PI)/i)*.5+1)};var x={animate:w,animateBatch:B,stop:I,easings:e}; diff --git a/dist/fast-ease.esm.min.js b/dist/fast-ease.esm.min.js index 4232c8d..cafb06b 100644 --- a/dist/fast-ease.esm.min.js +++ b/dist/fast-ease.esm.min.js @@ -1 +1 @@ -function l(t,u,i=1e3,e=0,f=300){var s=performance.now(),c=s+i,a;function n(h){var o=h-s;if(o>=i)return cancelAnimationFrame(a);t(e+(f-e)*u(o/i)),a=requestAnimationFrame(n)}return a=requestAnimationFrame(n)}function v(t,u,i=1e3,e){var f=performance.now(),s=f+i,c,a=new Array(e[0].length);function n(h){var o=h-f;if(o>=i)return cancelAnimationFrame(c);var p=u(o/i);e.forEach((M,m)=>a[m]=M[0]+(M[1]-M[0])*p),t(...a),c=requestAnimationFrame(n)}return c=requestAnimationFrame(n)}var r={};r.linear=function(t){return t};r.inQuad=function(t){return t*t};r.outQuad=function(t){return t*(2-t)};r.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};r.inCube=function(t){return t*t*t};r.outCube=function(t){return--t*t*t+1};r.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};r.inQuart=function(t){return t*t*t*t};r.outQuart=function(t){return 1- --t*t*t*t};r.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};r.inQuint=function(t){return t*t*t*t*t};r.outQuint=function(t){return--t*t*t*t*t+1};r.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};r.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};r.outSine=function(t){return Math.sin(t*Math.PI/2)};r.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};r.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};r.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};r.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};r.inCirc=function(t){return 1-Math.sqrt(1-t*t)};r.outCirc=function(t){return Math.sqrt(1- --t*t)};r.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};r.inBack=function(t){var u=1.70158;return t*t*((u+1)*t-u)};r.outBack=function(t){var u=1.70158;return--t*t*((u+1)*t+u)+1};r.inOutBack=function(t){var u=2.5949095;return(t*=2)<1?.5*(t*t*((u+1)*t-u)):.5*((t-=2)*t*((u+1)*t+u)+2)};r.inBounce=function(t){return 1-r.outBounce(1-t)};r.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};r.inOutBounce=function(t){return t<.5?r.inBounce(t*2)*.5:r.outBounce(t*2-1)*.5+.5};r.inElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)))};r.outElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-u)*(2*Math.PI)/e)+1)};r.inOutElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)):i*Math.pow(2,-10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)*.5+1)};var w={animate:l,animateBatch:v,easings:r};export{l as animate,v as animateBatch,w as default,r as easings}; +var n={},c={},a=0,B=(t,e,u=1e3,i,f,o)=>{a++;var M=performance.now(),l=M+u;o&&(c[a]=o);function s(p){var h=p-M;if(h>=u)return cancelAnimationFrame(n[a])||delete n[a]&&delete c[a]&&o&&o(a);t(i+(f-i)*e(h/u)),n[a]=requestAnimationFrame(s)}return n[a]=requestAnimationFrame(s),a},I=(t,e,u=1e3,i,f)=>{a++;var o=performance.now(),M=o+u,l=new Array(i[0].length);f&&(c[a]=f);function s(p){var h=p-o;if(h>=u)return cancelAnimationFrame(n[a])||delete n[a]&&delete c[a]&&f&&f(a);var v=e(h/u);i.forEach((m,w)=>l[w]=m[0]+(m[1]-m[0])*v),t(...l),n[a]=requestAnimationFrame(s)}return n[a]=requestAnimationFrame(s),a},O=t=>{if(cancelAnimationFrame(n[t]),delete n[t],c[t]){var e=c[t];delete c[t],e(t)}},r={};r.linear=function(t){return t};r.inQuad=function(t){return t*t};r.outQuad=function(t){return t*(2-t)};r.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};r.inCube=function(t){return t*t*t};r.outCube=function(t){return--t*t*t+1};r.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};r.inQuart=function(t){return t*t*t*t};r.outQuart=function(t){return 1- --t*t*t*t};r.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};r.inQuint=function(t){return t*t*t*t*t};r.outQuint=function(t){return--t*t*t*t*t+1};r.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};r.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};r.outSine=function(t){return Math.sin(t*Math.PI/2)};r.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};r.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};r.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};r.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};r.inCirc=function(t){return 1-Math.sqrt(1-t*t)};r.outCirc=function(t){return Math.sqrt(1- --t*t)};r.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};r.inBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)};r.outBack=function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1};r.inOutBack=function(t){var e=2.5949095;return(t*=2)<1?.5*(t*t*((e+1)*t-e)):.5*((t-=2)*t*((e+1)*t+e)+2)};r.inBounce=function(t){return 1-r.outBounce(1-t)};r.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};r.inOutBounce=function(t){return t<.5?r.inBounce(t*2)*.5:r.outBounce(t*2-1)*.5+.5};r.inElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),-(u*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)))};r.outElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),u*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)};r.inOutElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),(t*=2)<1?-.5*(u*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)):u*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)};var P={animate:B,animateBatch:I,stop:O,easings:r};export{B as animate,I as animateBatch,P as default,r as easings,O as stop}; diff --git a/dist/fast-ease.js b/dist/fast-ease.js index d7313a6..ff08fd2 100644 --- a/dist/fast-ease.js +++ b/dist/fast-ease.js @@ -1,34 +1,50 @@ (() => { // src/index.js - function animate(callback, ease, duration = 1e3, from = 0, to = 300) { + var running = {}; + var finish = {}; + var id = 0; + var animate = (callback, ease, duration = 1e3, from, to, done) => { + id++; var start = performance.now(); var end = start + duration; - var id; + done && (finish[id] = done); function frame(now) { var delta = now - start; if (delta >= duration) - return cancelAnimationFrame(id); + return cancelAnimationFrame(running[id]) || delete running[id] && delete finish[id] && done && done(id); callback(from + (to - from) * ease(delta / duration)); - id = requestAnimationFrame(frame); + running[id] = requestAnimationFrame(frame); } - return id = requestAnimationFrame(frame); - } - function animateBatch(callback, ease, duration = 1e3, batch) { + running[id] = requestAnimationFrame(frame); + return id; + }; + var animateBatch = (callback, ease, duration = 1e3, batch, done) => { + id++; var start = performance.now(); var end = start + duration; - var id; var interpolated = new Array(batch[0].length); + done && (finish[id] = done); function frame(now) { var delta = now - start; if (delta >= duration) - return cancelAnimationFrame(id); + return cancelAnimationFrame(running[id]) || delete running[id] && delete finish[id] && done && done(id); var easing = ease(delta / duration); batch.forEach((value, index) => interpolated[index] = value[0] + (value[1] - value[0]) * easing); callback(...interpolated); - id = requestAnimationFrame(frame); + running[id] = requestAnimationFrame(frame); + } + running[id] = requestAnimationFrame(frame); + return id; + }; + var stop = (id2) => { + cancelAnimationFrame(running[id2]); + delete running[id2]; + if (finish[id2]) { + var done = finish[id2]; + delete finish[id2]; + done(id2); } - return id = requestAnimationFrame(frame); - } + }; var easings = {}; easings.linear = function(n) { return n; @@ -194,6 +210,7 @@ var src_default = { animate, animateBatch, + stop, easings }; diff --git a/dist/fast-ease.min.js b/dist/fast-ease.min.js index e9a487c..6ef113c 100644 --- a/dist/fast-ease.min.js +++ b/dist/fast-ease.min.js @@ -1 +1 @@ -(()=>{function v(t,u,i=1e3,e=0,f=300){var s=performance.now(),c=s+i,a;function n(h){var o=h-s;if(o>=i)return cancelAnimationFrame(a);t(e+(f-e)*u(o/i)),a=requestAnimationFrame(n)}return a=requestAnimationFrame(n)}function w(t,u,i=1e3,e){var f=performance.now(),s=f+i,c,a=new Array(e[0].length);function n(h){var o=h-f;if(o>=i)return cancelAnimationFrame(c);var m=u(o/i);e.forEach((M,l)=>a[l]=M[0]+(M[1]-M[0])*m),t(...a),c=requestAnimationFrame(n)}return c=requestAnimationFrame(n)}var r={};r.linear=function(t){return t};r.inQuad=function(t){return t*t};r.outQuad=function(t){return t*(2-t)};r.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};r.inCube=function(t){return t*t*t};r.outCube=function(t){return--t*t*t+1};r.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};r.inQuart=function(t){return t*t*t*t};r.outQuart=function(t){return 1- --t*t*t*t};r.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};r.inQuint=function(t){return t*t*t*t*t};r.outQuint=function(t){return--t*t*t*t*t+1};r.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};r.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};r.outSine=function(t){return Math.sin(t*Math.PI/2)};r.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};r.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};r.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};r.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};r.inCirc=function(t){return 1-Math.sqrt(1-t*t)};r.outCirc=function(t){return Math.sqrt(1- --t*t)};r.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};r.inBack=function(t){var u=1.70158;return t*t*((u+1)*t-u)};r.outBack=function(t){var u=1.70158;return--t*t*((u+1)*t+u)+1};r.inOutBack=function(t){var u=2.5949095;return(t*=2)<1?.5*(t*t*((u+1)*t-u)):.5*((t-=2)*t*((u+1)*t+u)+2)};r.inBounce=function(t){return 1-r.outBounce(1-t)};r.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};r.inOutBounce=function(t){return t<.5?r.inBounce(t*2)*.5:r.outBounce(t*2-1)*.5+.5};r.inElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),-(i*Math.pow(2,10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)))};r.outElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-u)*(2*Math.PI)/e)+1)};r.inOutElastic=function(t){var u,i=.1,e=.4;return t===0?0:t===1?1:(!i||i<1?(i=1,u=e/4):u=e*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?-.5*(i*Math.pow(2,10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)):i*Math.pow(2,-10*(t-=1))*Math.sin((t-u)*(2*Math.PI)/e)*.5+1)};var p={animate:v,animateBatch:w,easings:r};window.FastEase=p;})(); +(()=>{var n={},f={},a=0,I=(t,e,u=1e3,i,c,o)=>{a++;var M=performance.now(),l=M+u;o&&(f[a]=o);function s(m){var h=m-M;if(h>=u)return cancelAnimationFrame(n[a])||delete n[a]&&delete f[a]&&o&&o(a);t(i+(c-i)*e(h/u)),n[a]=requestAnimationFrame(s)}return n[a]=requestAnimationFrame(s),a},O=(t,e,u=1e3,i,c)=>{a++;var o=performance.now(),M=o+u,l=new Array(i[0].length);c&&(f[a]=c);function s(m){var h=m-o;if(h>=u)return cancelAnimationFrame(n[a])||delete n[a]&&delete f[a]&&c&&c(a);var w=e(h/u);i.forEach((p,B)=>l[B]=p[0]+(p[1]-p[0])*w),t(...l),n[a]=requestAnimationFrame(s)}return n[a]=requestAnimationFrame(s),a},P=t=>{if(cancelAnimationFrame(n[t]),delete n[t],f[t]){var e=f[t];delete f[t],e(t)}},r={};r.linear=function(t){return t};r.inQuad=function(t){return t*t};r.outQuad=function(t){return t*(2-t)};r.inOutQuad=function(t){return t*=2,t<1?.5*t*t:-.5*(--t*(t-2)-1)};r.inCube=function(t){return t*t*t};r.outCube=function(t){return--t*t*t+1};r.inOutCube=function(t){return t*=2,t<1?.5*t*t*t:.5*((t-=2)*t*t+2)};r.inQuart=function(t){return t*t*t*t};r.outQuart=function(t){return 1- --t*t*t*t};r.inOutQuart=function(t){return t*=2,t<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)};r.inQuint=function(t){return t*t*t*t*t};r.outQuint=function(t){return--t*t*t*t*t+1};r.inOutQuint=function(t){return t*=2,t<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)};r.inSine=function(t){return 1-Math.cos(t*Math.PI/2)};r.outSine=function(t){return Math.sin(t*Math.PI/2)};r.inOutSine=function(t){return .5*(1-Math.cos(Math.PI*t))};r.inExpo=function(t){return t==0?0:Math.pow(1024,t-1)};r.outExpo=function(t){return t==1?t:1-Math.pow(2,-10*t)};r.inOutExpo=function(t){return t==0?0:t==1?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(-Math.pow(2,-10*(t-1))+2)};r.inCirc=function(t){return 1-Math.sqrt(1-t*t)};r.outCirc=function(t){return Math.sqrt(1- --t*t)};r.inOutCirc=function(t){return t*=2,t<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)};r.inBack=function(t){var e=1.70158;return t*t*((e+1)*t-e)};r.outBack=function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1};r.inOutBack=function(t){var e=2.5949095;return(t*=2)<1?.5*(t*t*((e+1)*t-e)):.5*((t-=2)*t*((e+1)*t+e)+2)};r.inBounce=function(t){return 1-r.outBounce(1-t)};r.outBounce=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};r.inOutBounce=function(t){return t<.5?r.inBounce(t*2)*.5:r.outBounce(t*2-1)*.5+.5};r.inElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),-(u*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)))};r.outElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),u*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/i)+1)};r.inOutElastic=function(t){var e,u=.1,i=.4;return t===0?0:t===1?1:(!u||u<1?(u=1,e=i/4):e=i*Math.asin(1/u)/(2*Math.PI),(t*=2)<1?-.5*(u*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)):u*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)};var v={animate:I,animateBatch:O,stop:P,easings:r};window.FastEase=v;})(); diff --git a/package.json b/package.json index e3cf08e..baf0cc3 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "tiny" ], "author": "Dmitrii Vasilev", - "homepage": "https://github.com/caracal7/fast-ease#readme", + "homepage": "https://fast-ease.js.org", "license": "MIT", "repository": { "type": "git",