function moveElement(elementID,final_x,final_y,interval){
//alert("moveElement");
i++;
if(!document.getElementById) return false;
if(!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
// alert(elem.style.left);
// if(elem.movement){
// clearTime(elem.movement);
// }
if(!elem.style.left){
elem.style.left = "0px";
}
if(!elem.style.top){
elem.style.top = "0px";
}
var xpos =parseInt(elem.style.left);//alert(xpos);
var ypos =parseInt(elem.style.top);//alert(ypos);
if(xpos==final_x&&ypos==final_y){
//alert("true");
return true;
}
//alert("xpos="+xpos+"final_x="+final_x);
if(xpos<final_x){
var dist = Math.ceil((final_x-xpos)/10);
xpos=xpos+dist;
}
if(xpos>final_x){
//alert("xpos="+xpos+"final_x="+final_x);
var dist = Math.ceil((xpos-final_x)/10);
xpos=xpos-dist;
//alert("xpos="+xpos+"dist="+dist);
}
if(ypos<final_y){
var dist = Math.ceil((final_y-ypos)/10);
ypos=ypos+dist;
}
if(ypos>final_y){
var dist = Math.ceil((ypos-final_y)/10);
ypos=ypos-dist;
}
elem.style.left = xpos + "px" ;//alert(xpos);
elem.style.top = ypos + "px" ;
//alert(Math.abs(xpos));
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
elem.movement = setTimeout(repeat,interval);
}
repeat怎样理解啊,求赐教
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
elem.movement = setTimeout(repeat,interval); //settimeout的第一个参数是function,而且需要字符串括起来。repeat就是一个function方法的字符串。
http://www.jb51.net/article/35535.htm
http://boleyn.iteye.com/blog/1144015
建议传递函数,传递字符串效率不怎么样,而且有字符串参数还得注意转义什么的
var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
elem.movement = setTimeout(function(){
moveElement(elementID,final_x,final_y,interval)
},interval);