關(guān)于go函數(shù)
function?animate(offset){ var?newLeft?=parseInt(list.style.left)+offset;? var?_time?=740;//位移總時(shí)間 var?interval?=?20?//?時(shí)間間隔 var?speed?=?offset/(_time/interval);//單位時(shí)間位移量 alert(offset); alert(speed); alert("newLeft="?+?newLeft); //內(nèi)部函數(shù) 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(){ //按鈕復(fù)位 if(index==0){ index?=?4; }else{ index?-=?1; } showButton(); animate(740); }
為什么我點(diǎn)next會(huì)跳到第三個(gè),在沒寫go函數(shù)之前都是正常的,寫了之后有動(dòng)畫但是會(huì)直接跳兩張圖片
2017-07-26
找到問題了,else里面的list.style.left=parseInt(list.style.left)+offset+"px"; 等號(hào)后應(yīng)該用newLeft,用parseInt(list.style.left)相當(dāng)于又判斷了移動(dòng)后的位置導(dǎo)致最后一次跳了一張圖片