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);
关于setTimeout()阻塞的问题
最新推荐文章于 2025-06-18 10:11:40 发布