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()阻塞的问题
最新推荐文章于 2024-08-25 08:30:00 发布