function moveElment(elementID,final_x,final_y,inteval){
var message=document.getElementById(elementID);
var xpos=parseInt(message.style.left);
var ypos=parseInt(message.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--;
}
message.style.left=xpos+"px";
message.style.top=ypos+"px";
var repeat="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
movement=setTimeout(repeat,interval);
}
addLoadEvent(moveMessage);两个问题:1) 为什么后面要把数值转为字符串形式? 2) 为什么要把moveElement赋值给局部变量? 而且赋值时elementID,final_x,...要在左右加上+号,为什么在elementID要加上单引号?final_x等不用?希望大神能给予帮助 小弟感激不尽。 在web道路上不断努力中...
2 回答
__blank
TA贡献1条经验 获得超0个赞
(1)说得是+"px"那两个属性赋值么?不加px的话mr.css表示不认识mr.js弄过来的东西是个啥。写css定位样式位置的时候肯定要带px单位的嘛
(2)var repeat = "moveElement(' "+elementID+" ',"+final_x+","+final_y+","+interval+")";
不是你说的那样,而是你分组分错了,我这样加下划线不知道你能不能明白了,双引号大部分是作用于逗号括号这些的和变量无关。可以不赋值给局部变量啊,直接可以填在setTImeout函数里,但作者已经做出了解释,这样做是为了更好的阅读代码,不然那么长,填在函数里面不好阅读。
添加回答
举报
0/150
提交
取消