这确实是一个很好的问题,因为它还需要一些数学背景。
所以,首先,让我们说一下我们要做什么: 0. 你必须决定圆的中心和它的半径 1. 我们必须决定在哪个角度,在一个圆上,我们应该放置我们的 div 2 然后我们应该做一个给定角度的函数,为您提供 div 的位置
那么,我们该怎么做呢?
决定哪个应该是圆的中心(如果它必须留在页面的中心
决定半径(也可以根据窗户尺寸计算)
一些三角学:要理解角度迭代,只需将 360° 除以 div 的数量:如果你有两个 div,那么你的角度间隔是 360/2=180(丑陋)。如果你有 10 个 div,你的 intrval 是 36°
很好,现在我们可以开始编码了。
获取中心:我只是在这个stackoverflow 链接上将你重定向到它
使用相同的代码来确定半径
该函数将 div 的数量、半径、中心作为输入,并返回一个带有 div 坐标的数组。中心是一个 2 位数组(x 和 y)。在函数中我们做了一些调整以输出 div 的实际位置。
.
function getCoords(divNum, radius, center){
var num= divNum;
var angleInt= (6.28/num);
var outArray=[];
for (i=0;i<divNum;i++){
outArray.push([(Math.cos(angleInt*i)*radius+center[0]),(Math.sin(angleInt*i)*radius+center[1])]);
}
return outArray;
}
好了,完成了,现在您可以使用任何 jquery 方法放置 div,如下例所示:
var localization=getCoords(10,200,[400,400]);
var i=1;
for (var element in localization){
var posTop=localization[element][0];
var posLeft=localization[element][1];
var element= $("<div class='inner'>"+i+"</div>");
$(element).css({ position: "absolute",
marginLeft: 0, marginTop: 0,
top: posTop, left: posLeft });
$("body").append(element);
i=i+1;
}
希望这可以帮助