javascript dom 编程艺术第十章的一个问题

最近在看《Javascript Dom编程艺术》,在阅读到第十章“用javascript实现动画效果”时遇到一个问题,思考之后记录在此。

function moveElement(elementID,final_x,final_y,interval){
	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变量中的elementID,final_x,final_y,interval两边都要加“+”,把“+”去掉之后又实现不了想要的效果,仔细想了想,这是因为setTimeout()函数第一个参数时字符串,所以
var repeat ="moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";
传入setTimeout()时就变成了这样:
movement("elementID",final_x,final_y,interval)
去掉加号当然行不通了。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值