私は円形メニューの作成を検討しており、これまでのところ、円形の配置を Javascript で動作させることができますが、純粋な CSS の代替手段を実現することにまだ興味があります。
私の調査で、このメニューを発見しました: http://www.cssplay.co.uk/menus/cssplay-round-and-round.html。
そのメニューは、すべての単一のリスト項目にインデックス (p1、p2、p3 ...) を持つクラスを与えることによって行われ、サブサークルの子にはクラス (s1、s2、s3 ...) があります。次に、アイテムはそのクラスから適切な場所に -webkit-transformed されます。
クラスを要素にハードコードし、各タイプの CSS ルールを書き出すことなく、これを行う方法はありますか? そうでない場合、JS でこれを行う最善の方法は何ですか?
私がこれまでに持っているもの
要素をJavascriptで完全に配置することで目的の効果を達成しましたが、このスタイルのソリューションにはあまり興味がありません。コードは次のようになります。
var circles = document.getElementsByClassName('circle');
var radius = circles.style.height / 2;
for(var i = 0; i < circles.length; i++) {
var items = circles.children;
for(var i = 0; i < items.length) {
items.style.left = 0 + cos((i / items.length) * 360) * radius;
items.style.top = 0 + cos((i / items.length) * 360) * radius;
}
}
style.width の戻り値がオブジェクトであるため、実際のコードはもう少し複雑ですが、例として、これで要点がわかります。