var w=window;//先給變量w賦值windowfunction B(v_Cg,v_C,v,j,I,st,t,D,C){ function CgE(){ L=0; for(L in v){ v[L]+=j[L]; V[L]=v[L]; if(I) V[L]=Math.round(V[L]); } if(v.length==1) D(V[0]); else D(V); J++; if(J!=t) eval(v_Cg+'=w.setTimeout(CgE,st);'); else eval(v_C+'=w.setTimeout(C,1);'); } var J,L,V; V=[];J=0; if(T(v)!='array' && T(j)!='array'){ v=[v];j=[j]; } eval(v_Cg+'=w.setTimeout(CgE,st);');}這是個隨時間變化改變值的函數(shù)。其中沒提到的T()是個檢查變量類型的函數(shù),該函數(shù)正常。參數(shù)解釋如下:v_Cg :用來setTimeout改變值的變量的名字。v_C :用來CallBack的變量的名字。v :初始值。(可以是正負浮點數(shù),整數(shù),或者全是數(shù)字的數(shù)組)j :每次改變的值。(可以是正負浮點數(shù),整數(shù),或者全是數(shù)字的數(shù)組)I :變化的結(jié)果是否取整數(shù)。布爾值。st :每次變化之間的時間間隔。單位毫秒。t :變化次數(shù)。整數(shù)。D:每次變化后執(zhí)行的函數(shù)。C:CallBack。v為初始值,每間隔st毫秒鐘,v加j,然后執(zhí)行一次D函數(shù),參數(shù)為變化后的t,一共變t次,變完后執(zhí)行C函數(shù)。例如我可以用這個函數(shù)來對一個div進行動畫。<div id="abc" style="width:100px;height:50px;background:#333;"></div><script>var CgS,CS;window.onload=function(){ C('CgS','CS',50,3,false,10,100,function(n){ document.getElementById('abc').style.height=n+'px'; },function(){alert('1');});}</script>為什么這個動畫執(zhí)行了3秒?理論應(yīng)該是1秒。
JavaScript看下這個值隨時間變化而變化的函數(shù)為什么出錯
炎炎設(shè)計
2018-12-06 20:33:00