每次循环时,这应该将段落(带有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>