gpt4 book ai didi

javascript - 为什么这个非常简单的 javascript/jquery 代码不能正常工作

转载 作者:行者123 更新时间:2023-11-30 10:40:42 25 4
gpt4 key购买 nike

我有一个非常简单的 JavaScript/jquery 代码,它不能正常工作。问题似乎是在循环运行时似乎没有计算出带有 id 'circle' 的 div 的定位。只需要知道问题发生的原因以及是否有可用的修复方法。

这是链接 http://jsfiddle.net/TDRyS/基本上我想做的是,一旦球与顶部的距离为 500 像素,就尝试将球向上移动。

代码:

var maxa = document.width;
var maxb = document.height;
$(document).ready(function() {

dothis();
});

function dothis() {
var left = parseInt(document.getElementById('circle').style.left);
var top = parseInt(document.getElementById('circle').style.top);
if (top >= 500) {
$("#circle").animate({
top: "-=" + Math.floor(Math.random() * 100 + 1) + "px",
left: "-=" + Math.floor(Math.random() * 100 + 1) + "px"
}, 1000);
}
else {
$("#circle").animate({
top: "+=" + Math.floor(Math.random() * 100 + 1) + "px",
left: "+=" + Math.floor(Math.random() * 100 + 1) + "px"
}, 1000);

}

dothis();
}​

最佳答案

你需要在再次调用该函数之前设置超时\将函数作为回调传递

Live DEMO

完整代码:

var maxa = document.width;
var maxb = document.height;
var up = false;
$(document).ready(function() {

doThis();
});

function doThis() {

var left = parseInt(document.getElementById('circle').style.left);
var top = parseInt(document.getElementById('circle').style.top);
if (top < 50) {
up = false;
}
if (top >= 500 || up) {

up = true;
$("#circle").animate({
top: "-=" + Math.floor(Math.random() * 100 + 1) + "px",
left: "-=" + Math.floor(Math.random() * 100 + 1) + "px"
}, 500, doThis);
}
else {
$("#circle").animate({
top: "+=" + Math.floor(Math.random() * 100 + 1) + "px",
left: "+=" + Math.floor(Math.random() * 100 + 1) + "px"
}, 500, doThis);

}
}​

关于javascript - 为什么这个非常简单的 javascript/jquery 代码不能正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com