这段代码摘抄自Javascript DOM编程艺术第2版 第十章 192页
请问倒数第二行变量 movement 有什么作用??只有时间函数也可以运行,没看到哪里用到这个变量啊。192页说动画效果不正确是由全局变量引起的,不懂怎么影响到的
代码如下 moveElement.js
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);
//上面
}
谢谢各位大神的指导!
保存延迟器句柄,用于清除延迟器,不清除会有内存泄漏