我想用Javascript/jQuery在页面上随机放置一个类的几个元素。我的想法是为margin-top,margin-left和z-index生成随机值。问题是,我需要在这两者之间产生值阴性和阳性(如从-150px至300像素),我不知道如何与我使用的代码,使其:如何在页面上随机放置几个元素?
$(".randomnumber").each(function() {
var randomtop = Math.floor(Math.random() * 101);
var randomleft = Math.floor(Math.random() * 101);
var randomzindex = Math.floor(Math.random() * 101);
$(this).css({
"margin-top": randomtop,
"margin-left": randomleft,
"z-index": randomzindex
});
});
http://jsfiddle.net/7JGqZ/651/
所以,我的问题有:
不知道如何使它与负值的工作 - 比如我需要的顶边距从-150px至300像素。
在小提琴元素beave有点怪,像他们的立场是不是真正随机的或者像他们相互连接...
更新:
制造它的工作,但仍然不喜欢的结果,我实际上希望元素随机放置,所以他们会适合页面大小,我的意思是元素将被放置在整个页面上,不会太远离上边缘页。现在我有一个固定在页面中心的父元素(具有宽度和高度= 0,顶部和底部= 50%),我的想法是定位其子元素,生成顶部和左侧边距,如下所示:
$(document).ready(function(){
$(".mood-img").each(function() {
var height = $(window).height();
var halfheight = height/2;
var margintop = halfheight-400;
var width = $(window).width();
var halfwidth = width/2;
var marginleft = halfwidth-500;
var randomtop = getRandomInt(halfheight, margintop);
var randomleft = getRandomInt(halfwidth, marginleft);
var randomzindex = getRandomInt(1, 30);
$(this).css({
"margin-top": randomtop,
"margin-left": randomleft,
"z-index": randomzindex
});
});
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
});
http://jsfiddle.net/7JGqZ/657/
至于#2,在编码方面没有真正的随机性。至于#1,你可以产生一个从0到450的随机数,然后减去150 ... –
对于#1,你可以产生0-450之间的随机数,然后减去150来得到你想要的范围。 – aztechy
嗯,我听说过这个,但我的意思是元素总是放在一个组中,彼此距离不远。 – Kostsei