每次循环时,这应该将段落(带有id为“文本”)的位置更向右移。但是它不起作用,我也不知道如何解决它,所以如果有人可以帮助我,我将非常高兴。先感谢您。

  var x = 0;

  d.style.position = "absolute";

  function myLoop () {
    setTimeout(function () {
      x += 10;
      document.getElementById('Text').style.left = x+'px';
      myLoop();
    }, 100)
  }


(这就是脚本中的所有内容)

最佳答案

您在这里有2期。

1)您从未定义d。这导致在此处停止脚本而不执行下一行代码。

2)您从未调用过myLoop()函数。

因此,请进行所有更正。



var x = 0;
var d = document.getElementById('Text');
d.style.position = "absolute";
myLoop();
  function myLoop () {
    setTimeout(function () {
      x += 10;
      d.style.left = x+'px';
      myLoop();
    }, 100)
  }

<div id="Text">Test </div>





除了此解决方案之外,您可能还需要看一下setInterval函数,该函数会减少您的代码。



var x = 0;
var d = document.getElementById('Text');
d.style.position = "absolute";
myLoop();
  function myLoop () {
    setInterval(function () {
      x += 10;
      d.style.left = x+'px';
    }, 100)
  }

<div id="Text">Test </div>

08-07 09:51