使用Javascript更改元素的位置
这应该会在每次循环时更改段落的位置(ID为“文本”)。它不工作,但我不知道如何解决它,所以如果有人能帮助我,我会很高兴。先谢谢你。使用Javascript更改元素的位置
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>
你应该已经定义了'd',所以它会被缓存并且可以大大提高性能。 –
@JeremyThille绝对如此。 –
不错的选择使用'setInterval',但现在'myLoop()'函数是没用的:) –
试试这个
d
没有任何值,与
d = document.getElementById('Text');
定义d
和调用函数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'>
所以,'D'为'的document.getElementById( '文本')'缓存值?那你为什么不重复使用'd'?如果这完全是你的脚本,'d'是未定义的,并且该行通过抛出错误来破坏执行。你的游戏机说什么? –
你最初在哪里调用myLoop()函数? – Svenskunganka