数学のバックグラウンドも必要なので、これは本当にいい質問です。
したがって、最初に、何をしようとしているのかを考えてみましょう。0.円の中心とその半径を決定する必要があります1.円のどの角度で、divを配置するかを決定する必要があります2次に、角度が与えられると、divの位置を与える関数
それで、私たちはそれで何をしますか?
どちらを円の中心にするかを決定します(ページの中心にとどまる必要がある場合)
半径を決定します(ウィンドウの寸法に応じて計算することもできます)
三角法:角度の反復を理解するには、360°をdivの数で割るだけです。divが2つある場合、角度の間隔は360/2 = 180(醜い)です。10 divがある場合、intrvalは36°です
非常に良いです。これでコーディングの準備が整いました。
センターを取得:このstackoverflowリンクでtにリダイレクトします
同じコードを使用して半径を決定します
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;
}
お役に立てれば