【发布时间】:2014-12-26 18:17:01
【问题描述】:
我有以下 jquery 代码将矩形从一个地方移动到另一个地方。它有效。
jQuery(function ($) {
$(document).ready(function () {
loop_pos = function () {
var docHeight = $(document).height(),
docWidth = $(document).width(),
$div = $('#test'),
divWidth = $div.width(),
divHeight = $div.height(),
heightMax = docHeight - divHeight,
widthMax = docWidth - divWidth;
$div.css({
left: Math.floor(Math.random() * widthMax),
top: Math.floor(Math.random() * heightMax)
// here
});
}
// or here
});
});
现在,我想让这个矩形在无限循环中自动改变它的位置。 我尝试在 //这里也 // 或这里调用函数 loop_pos,但它不起作用,我不知道该怎么做。
另一种解决方案可能是 setTimeout() 但我无法使其工作。 请一点帮助。谢谢。
【问题讨论】:
-
查看 JavaScript
setInterval函数。您可能还希望考虑使用 CSS 动画而不是 jQuery。 -
代码应该被重构。像宽度和高度这样的变量应该只计算一次,而不是每次调用。如果您需要刷新它们,请在窗口的调整大小事件上添加一个侦听器。您希望动画以什么速率运行(每秒调用多少次?)
-
or here是你的答案:jsfiddle.net/RokoCB/fzj0m52j -
我真的认为这需要一些解释和优化。
-
Just for fun 使用 animate 属性而不是 CSS。
标签: javascript jquery infinite-loop