如果我拿出变量计数器并且只设置document.getElementById("movee").style.top
等于一个数字,它就可以正常工作。将变量计数器和该位代码结合在一起理论上将得到一个图像移动。不过由于某种原因,它不工作!设置HTML元素的垂直位置
<html>
<style type="text/css">
#movee
{
position:absolute;
}
</style>
<script type="text/javascript">
function goDown()
{
var counter=1;
while (counter<300)
{
document.getElementById("movee").style.top="counter";
var counter=counter+1;
}
}
</script>
<input type="button" onclick="goDown()" value="Move!">
<img src="test.png" id="movee"></img>
</html>
不是100%肯定的,但是使用setTimeout和curried函数(用于变量范围)允许运行在函数运行时发生?此外,+1建议其他人已经解决了这个问题的地方(jQuery或CSS转换,特别是转换:translate())。 – MushinNoShin 2013-02-23 19:34:49
setTimeout可以工作,但我预见它会导致更多的问题。 – Musa 2013-02-23 19:38:10
的确如此。 OP应尽可能使用jquery或css,并停止尝试重新发明轮子。 – MushinNoShin 2013-02-23 19:40:46