这应该在每次循环时将段落的位置(ID为'Text')更改为右侧。它不起作用,我无法弄清楚如何解决它,所以如果有人能帮助我,我会很高兴。提前谢谢。
var x = 0;
d.style.position = "absolute";
function myLoop () {
setTimeout(function () {
x += 10;
document.getElementById('Text').style.left = x+'px';
myLoop();
}, 100)
}
(这是脚本中的所有内容)
答案 0 :(得分:3)
这里有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>
答案 1 :(得分:1)
尝试这个
d
没有任何价值,因此请使用
d
d = document.getElementById('Text');
并调用您的函数myLoop
以便其工作
var x = 0;
d = document.getElementById('Text');
d.style.position = "absolute";
myLoop();
function myLoop() {
setTimeout(function() {
x += 10;
d.style.left = x + 'px';
myLoop();
}, 100)
}
<input type='text' id='Text'>