在看《Javascript DOM编程艺术》这本书的第10章《用JavaScript实现动画效果》时,作者提到抽象化一个函数,抽象后的代码如下:
function moveElement(elementID,final_x,final_y,interval) {
if (!document.getElementById) return false;
if (!document.getElementById(elementID)) return false;
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if (xpos == final_x && ypos == final_y) {
return true;
}
if (xpos < final_x) {
xpos++;
}
if (xpos > final_x) {
xpos--;
}
if (ypos < final_y) {
ypos++;
}
if (ypos > final_y) {
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
var repeat = "moveElement('" + elementID + "'," + final_x + "," + final_y + "," + interval + ")";
movement = setTimeout(repeat, interval);
}
不明白的地方在倒数第三行repeat
问题一:moveElement的四个参数为什么都要加上双引号,是因为都是字符串吗?但是实际用到的除了elementID是字符串,final_x、final_y、interval不都是数值吗?
问题二:moveElement的四个参数为什么每一个都要在前后加上+符号?
问题三:参数elementID外面加了一对双引号还有一对单引号,请问这是什么原因?
qq_青枣工作室_0
ruibin
相关分类