我如何为随机定位的元素设置动画,使它们不会重叠

时间:2011-02-25 09:23:56

标签: jquery animation

我正在考虑尝试在随机时间和位置动画输入/输出元素以创建类似

的效果

http://jsfiddle.net/MEpVq/

除了目前,会有很多重叠,而且似乎并非随机

2 个答案:

答案 0 :(得分:0)

随机是一种幻觉,世界上没有随机的只有我们不了解起始条件,过程或两者的情况。我认为你所看到的“随机性”的缺乏是感性的而不是实际的(在随机方法产生的模糊序列的范围内),我不认为这些元素的出现或多或少比预期的要少。不幸的是,当我们人类想到随机时,我们倾向于期待混乱。例如,如果我要求您考虑1到10之间的两个随机数,如果我没有给您任何标准,那么极不可能(到了永远不会)你会给我两次相同的数字但是“2”当从1到10中选择数字时,“2”是一个有效的随机序列。您还应用其他逻辑来避免您认为的模式,因为您期望“随机”变得混乱。

为了避免重叠,您需要为您创建的每个实例获取并存储位置和矩形(宽度,高度),并丢弃任何会导致重叠的新组合。您实际上是在限制流程的“随机性”,但是您的约束条件没有重叠,但考虑到要求,这是不可避免的。

答案 1 :(得分:-3)

有两种方法可以完成这项工作。很简单就是使用像jQuery RandPosPlugin这样的插件,这是我几周前创建的。更难以自己构建它。因此,你需要一些东西来保存元素的所有坐标 - 我使用标准数组。在尝试将下一个元素放在随机位置之前,您可以遍历该数组并检查该特定位置是否已存在元素 - 这意味着您需要重新计算它。它需要一些时间和相当多的测试,但总而言之,即使防止自己重叠,也不难实现这样的算法。