使用Javascript更改元素的位置
这是为了在每次循环时将段落(id为“Text”)的位置向右移动更多。但它不起作用,我也不知道如何修复它,所以如果有人能帮助我,我会非常高兴。先谢谢你使用Javascript更改元素的位置,javascript,html,Javascript,Html,这是为了在每次循环时将段落(id为“Text”)的位置向右移动更多。但它不起作用,我也不知道如何修复它,所以如果有人能帮助我,我会非常高兴。先谢谢你 var x = 0; d.style.position = "absolute"; function myLoop () { setTimeout(function () { x += 10; document.getElementById('Text').style.left = x+'px';
var x = 0;
d.style.position = "absolute";
function myLoop () {
setTimeout(function () {
x += 10;
document.getElementById('Text').style.left = x+'px';
myLoop();
}, 100)
}
(这是脚本中的所有内容)这里有两个问题 1) 你从来没有定义过d。这会导致在不执行下一行代码的情况下停止脚本 2) 您从未调用过
myLoop()
函数
所有的修正都是如此
var x=0;
var d=document.getElementById('Text');
d、 style.position=“绝对”;
myLoop();
函数myLoop(){
setTimeout(函数(){
x+=10;
d、 style.left=x+'px';
myLoop();
}, 100)
}
测试
试试这个
d
没有任何值,因此使用
d=document.getElementById('Text')代码>
然后调用你的函数myLoop
,这样它就可以工作了
var x=0;
d=document.getElementById('Text');
d、 style.position=“绝对”;
myLoop();
函数myLoop(){
setTimeout(函数(){
x+=10;
d、 style.left=x+'px';
myLoop();
}, 100)
}
那么,d
是文档的缓存值。getElementById('Text')
?那你为什么不重用d
?如果这就是脚本的全部内容,d
未定义,这一行通过抛出错误中断执行。你的控制台怎么说?你最初在哪里调用myLoop()
函数?你应该定义d
,这样它就会被缓存并大大提高性能。@JeremyThille绝对正确。使用setInterval
很好的替代方法,但现在是myLoop()
函数没用:)@JeremyThille No.No.OP可能想在点击按钮时调用myLoop()
?在循环内部重用d
(性能改进),我会说出来,我做到了。