function f_s(){ var obj=document.getElementById("box");//取得ID為box的對象 obj.style.display="block";//設定物件obj為顯示 obj.style.width="1px"; //設定物件obj的寬度為1px var changeW=function(){ //(關於函數這一點,什麼閉包,什麼類、原型的,弄的我頭大了,以後慢慢理解吧。這裡我理解的是創建一個函數直接量並把它存進變數changeW裡) var obj_w=parseInt(obj.style.width);//把物件的寬度轉換成一個數值,存入變數obj_w; if(obj_w<600){ //判斷,如果寬度數值小於600 obj.style.width=(obj_w+Math.ceil((600-obj_w)/15))+"px";//計算物件的寬度。 。 。隨著寬度的變長,遞增量也越來越小 } else{ clearInterval(bw);//如果大於等於600的話,不再執行setInterval,意思就是這個時候停止增加寬度了。 } } var bw=window.setInterval(changeW,1)//每0.001秒呼叫一次changeW }
//slow to fast 由慢到快 //宣告一個函數s_f() function s_f(){ var obj=document.getElementById("box2"); var e_add=1;//初始化遞增量 obj.style.display="block"; obj.style.width="1px"; var changeW=function(){//我理解的是建立一個函數直接量並把它存進變數changeW裡 var obj_w;e_add obj_w=parseInt(obj.style.width); e_add*=1.05;//以後每次遞增的值都是 if(obj_w<600){ obj.style.width=(obj_w+e_add)+"px";//隨著寬度的變長,遞增量越來越大 } else{ clearInterval(bw); obj.style.width="600px";//因為(obj_w+e_add)這種計算方法會超出預先定義的寬度,所以這裡在緩衝完以後重新設定它的寬度.造成一種假象哈哈 } } var bw=window.setInterval(changeW,1) }