vislite
Version:
灵活、快速、简单的数据可视化交互式跨端前端库
9 lines • 1.03 kB
JavaScript
/*!
* animation of VISLite JavaScript Library v1.4.0
* git+https://github.com/oi-contrib/VISLite.git
*/
/*!
* animation of OIPage v1.3.0
* git+https://github.com/oi-contrib/OIPage.git
*/
var t,n=[],e=13;function r(r,i,a){return function(r,i,a){arguments.length<2&&(i=400),arguments.length<3&&(a=function(){});var o={timer:function(t,e,r){if(!t)throw new Error("Tick is required!");var i=(new Date).valueOf()+"_"+(1e3*Math.random()).toFixed(0);return n.push({id:i,createTime:new Date,tick:t,duration:e,callback:r}),o.start(),i},start:function(){t||(t=setInterval(o.tick,e))},tick:function(){var t,e,r,i,a,u,c,f=n;for((n=[]).length=0,e=0;e<f.length;e++)t=(a=f[e]).createTime,r=a.tick,u=a.duration,i=a.callback,r(c=(c=(+(new Date).valueOf()-t.valueOf())/u)>1?1:c),c<1&&a.id?n.push(a):i(c);n.length<=0&&o.stop()},stop:function(){t&&(clearInterval(t),t=null)}},u=o.timer((function(t){r(t)}),i,a);return{stop:function(){var t;for(t in n)if(n[t].id==u)return void(n[t].id=void 0)}}}(r,i||400,a||function(){}).stop}export{r as default};