为什么我的 Div 不动?
Why Won't My Div Move?
我想通过一些运动来增肥 div
,但它不会!帮助!
<script>
do {
setTimeout(fly(), 10)
function fly() {
var i = 0;
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
}
}
while (i = 0);
</script>
<div id="dick" style="position:absolute; top:100px; left:100px; width:100px; height:100px; background-color:#000000;"></div>
因为代码中充满了逻辑错误。
setInterval(fly, 100);
function fly() {
var i = 0,
el = document.getElementById("dick"),
left = parseInt(el.style.left),
top = parseInt(el.style.top);
el.style.left = ++left + "px";
el.style.top = ++top + "px";
}
<div id="dick" style="position:absolute; top:100px; left:100px; width:100px; height:100px; background-color:#000000;"></div>
您应该使用 setInterval 而不是 setTimeout。另外,您应该给 setInterval 您的函数,而不是给它调用它的结果。
setInterval(fly, 10);
function fly() {
console.log("flying")
var i = 0;
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
}
检查这个 plunkr http://plnkr.co/edit/L3cid26ybpFYITfjUbmP?p=preview
现在的样子,您应该会在控制台中看到:
Uncaught TypeError: Cannot read property 'style' of null
首先,将您的脚本移到 <body>
标记之后;
然后,尝试编写类似这样的代码:
function fly() {
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
//nsole.log(left+" and "+top);
}
var T_TIME = 200; // ms
var intHandler = window.setInterval("fly()", T_TIME);
您最好使用 setInverval() 而不是带循环的 setTimeout。
我想通过一些运动来增肥 div
,但它不会!帮助!
<script>
do {
setTimeout(fly(), 10)
function fly() {
var i = 0;
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
}
}
while (i = 0);
</script>
<div id="dick" style="position:absolute; top:100px; left:100px; width:100px; height:100px; background-color:#000000;"></div>
因为代码中充满了逻辑错误。
setInterval(fly, 100);
function fly() {
var i = 0,
el = document.getElementById("dick"),
left = parseInt(el.style.left),
top = parseInt(el.style.top);
el.style.left = ++left + "px";
el.style.top = ++top + "px";
}
<div id="dick" style="position:absolute; top:100px; left:100px; width:100px; height:100px; background-color:#000000;"></div>
您应该使用 setInterval 而不是 setTimeout。另外,您应该给 setInterval 您的函数,而不是给它调用它的结果。
setInterval(fly, 10);
function fly() {
console.log("flying")
var i = 0;
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
}
检查这个 plunkr http://plnkr.co/edit/L3cid26ybpFYITfjUbmP?p=preview
现在的样子,您应该会在控制台中看到:
Uncaught TypeError: Cannot read property 'style' of null
首先,将您的脚本移到 <body>
标记之后;
然后,尝试编写类似这样的代码:
function fly() {
var left = parseInt(document.getElementById("dick").style.left);
var top = parseInt(document.getElementById("dick").style.top);
left++;
top++;
document.getElementById("dick").style.left = left + "px";
document.getElementById("dick").style.top = top + "px";
//nsole.log(left+" and "+top);
}
var T_TIME = 200; // ms
var intHandler = window.setInterval("fly()", T_TIME);
您最好使用 setInverval() 而不是带循环的 setTimeout。