poluoluo文章簡介:首先我要說的是,我是菜鳥,這些文章是獻給和我一樣想要學習的菜鳥們.論壇裡有幾位朋友發過緩沖效果,但是象我這種菜鳥看他們的代碼實在是一種痛苦,因為不是一個層次的.
先我要說的是,我是菜鳥,這些文章是獻給和我一樣想要學習的菜鳥們.運行代碼框
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]
關鍵代碼請看這兩個就可以了
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)
}