關于go函數
function?animate(offset){
var?newLeft?=parseInt(list.style.left)+offset;?
var?_time?=740;//位移總時間
var?interval?=?20?//?時間間隔
var?speed?=?offset/(_time/interval);//單位時間位移量
alert(offset);
alert(speed);
alert("newLeft="?+?newLeft);
//內部函數
var?go?=?function(){
if(?(speed<0&&parseInt(list.style.left)>newLeft)||
????????????????????(speed>0&&parseInt(list.style.left)<newLeft)?){
list.style.left?=?parseInt(list.style.left)?+speed?+"px";
setTimeout(go,interval);
}else{
list.style.left=parseInt(list.style.left)+offset+"px";
????if(newLeft>-740){
list.style.left?=?-3700+"px";
????}
????if(newLeft<-3700){
list.style.left?=?-740+"px";
????}
}
}
go();
????}
next.onclick?=?function(){
if(index==4){
index?=?0;
}else{
index?+=1;
}
//alert("test");
showButton();
animate(-740);
}
prev.onclick?=?function(){
//按鈕復位
if(index==0){
index?=?4;
}else{
index?-=?1;
}
showButton();
animate(740);
}為什么我點next會跳到第三個,在沒寫go函數之前都是正常的,寫了之后有動畫但是會直接跳兩張圖片
2017-07-26
找到問題了,else里面的list.style.left=parseInt(list.style.left)+offset+"px"; 等號后應該用newLeft,用parseInt(list.style.left)相當于又判斷了移動后的位置導致最后一次跳了一張圖片