給大家出一題,從起點A走到目的地B,一共用了1000毫秒,每一次是30毫秒,請問你在這裡面得到了哪些資訊?
資訊有哪些呢?
第一個,總長度是:1000毫秒
第二個,多久走一次? 30毫秒
第三個,走的總次數:1000/30
第四個,距離:B-A
第五個,步長:距離/總次數
運動框架的實現想法:就是在一定的時間段裡面改變left、top、width、height,到達目的地之後停止。
可以先思考一下,在頁面裡如何讓div動起來?
思考如下:1、設定div的時候為絕對定位,因為只有絕對定位之後,left、top等值才會在頁面上顯示出來。否則在頁面上看不見div。
2、可以給div設定點選事件,在函數裡面定義總的步數count,總距離dis,速度step=dis/count,還需要設定一個目前的步數,給它進行初始化n =0
3、接著使用計時器setInterval(),以達到div目前的距離,讓祂div動起來。
特定程式碼如下:
# window.onload = function(
window.onload = function(){#iv. ent. getElementById('div1');
oDiv.onclick = function(){ # count = parseInt(1000/30);
//走的總步數 500-0;
//距離# var n = 0;//
目前的步數
timer n++;
中下執行時執行其中對嘗試時#1吧#div#a#)#div>div&o#div&div#;##div&
#Po#Poo#;#Poo#-
#Pf#Poo#>>po#-
#div&P
#div&P
##div&o
div&o#;#Poo#;#-##a#Poo#;動起來了。
但是呢div他不會停下來,一直在移動,那是因為沒有給它設定運動終止條件。在上面程式碼中我們已經設定了目前的步數,也設定了總步數,那麼噹噹前步數和總步數一致的時候,然後清除計時器,那麼div是不是就可以停止了呢?
當步數達到500的時候,div就會停到500那塊。
改進後的程式碼如下:
window.onload = function(){
var oDiv = document.getElementById('div1 ');
var timer; oDiv.onclick = function(){ //判斷條件,當前步數與總步數一致的時候,那麼div就可以停止了 if(n == 含count){# (timer) }
var count = parseInt(1000/1000/3
31/##31/##3/#13)的總數
var dis = 500-0;//距離
var step = dis/count;#//count;//count;#//count;
## var n = 0;//目前的步數
ti # oDiv.style .left = n*step +'px';
};
},30)
}
}
}
#