我有一个持有人div在页面上,我想随机位置加载小图像作为每个10px填充拼贴。生成随机元素位置,并防止在JavaScript中重叠
我怎样才能确保图像不会互相重叠或持有人div? 有没有我可以使用的插件或函数?
到目前为止我的代码:
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#my_canvas img").each(
function(intIndex) {
var l = Math.floor(Math.random() * $("#my_canvas").width());
var t = Math.floor(Math.random() * $("#my_canvas").height());
$(this).css("left", l);
$(this).css("top", t);
$(this).bind(
"click",
function() {
alert("l=" + l + " t=" + t);
}
);
}
);
});
<style type="text/css">
#my_canvas
{
background: #eee;
border: black 1px solid;
width: 800px;
height: 400px;
}
#my_canvas img
{
padding: 10px;
position:absolute;
}
</style>
<div id="my_canvas">
<img src="images/1.jpg" />
<img src="images/9.jpg" />
<img src="images/2.jpg" />
<img src="images/3.jpg" />
<img src="images/4.jpg" />
<img src="images/5.jpg" />
<img src="images/6.jpg" />
<img src="images/7.jpg" />
<img src="images/8.jpg" />
</div>
它取决于你想要它们是多么随机...... 你可以将它们分配给一个网格,然后它们每个都加载在它们自己的保留单元/空间内的一个随机位置上,永远不会重叠并且仍然是“随机的”。 如果您希望它们完全随机,您需要将位置和大小添加到数组中,并为每个图像计算,如果他不是先前图像的相同坐标。 不知道如果像这样的东西已被放入插件之前虽然 – Sander 2009-08-17 09:13:09