关于setTimeout()阻塞的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/InfOrange/article/details/53557198
function go_to_position(x, y) {
	var ele = document.getElementsByTagName("p")[0];
	var x_now = parseInt(ele.style.left);
	
	//console.log(x);
	var y_now = parseInt(ele.style.top);

	if(x_now != x || y_now != y) {
		if(x_now - x > 0) {
			x_now -= 1;
		}
		if(x_now - x < 0) {
			x_now += 1;
		}
		if(y_now - y > 0) {
			y_now -= 1;
		}
		if(y_now - y < 0) {
			y_now += 1;
		}
		ele.style.left = x_now + 'px';
		ele.style.top = y_now + 'px';
		console.log(x_now+","+y_now);
		}

		if(x_now == x && y_now == y) {
			clearTimeout(movement);
			return false;
		}
		movement = setTimeout(function() {
			go_to_position(x, y);
		}, 50);

	}

go_to_position(400, 200);//当出现两个setTimeout的时候,调用函数导致X,Y赋值混乱,位于目标点两侧时,加减操作死循环
go_to_position(100, 200);


展开阅读全文

没有更多推荐了,返回首页