作成したメニュー
htmlおよびCSS
<div class="mamCircleMenu">
<div>
<div>
<svg viewBox="0 0 64 64">
<path d="M0,2 A38,38 0,0,1 0,62 " style="fill:none;stroke:#DDD;stroke-width:2;stroke-linecap:round;"></path>
</svg>
</div>
<div>
<div><a href="">メニュー 1へ</a></div>
<div><a href="">メニュー 2へ</a></div>
<div><a href="">メニュー 3へ</a></div>
<div><a href="">メニュー 4へ</a></div>
<div><a href="">メニュー 5へ</a></div>
<div><a href="">メニュー 6へ</a></div>
</div>
</div>
<div>
<h1>タイトル等を入れる</h1>
</div>
</div>
<style>
@media screen and ( max-width:667px) {
/* 667以下 */
.mamCircleMenu{
flex-wrap:wrap-reverse;
height:12em;
}
.mamCircleMenu>div:nth-child(1){
width:100%;
}
.mamCircleMenu>div:nth-child(2){
width:100%;
}
}
@media screen and (min-width:667px) {
/* 667を超える */
height:10em;
}
.mamCircleMenu{
font-size:16px;
background:#333;
margin:0;
padding-top:2em;
padding-bottom:2em;
padding-left:0em;
padding-right:0em;
position:relative;
display:flex;
width:100%;
}
.mamCircleMenu>div:nth-child(1){
background:#333;
position:relative;
margin:0;
padding:0;
flex:1 0 200px;
}
.mamCircleMenu>div:nth-child(2){
background:#333;
flex:0 1 auto;
padding-top:0.5em;
padding-bottom:0.5em;
}
.mamCircleMenu>div:nth-child(2)>h1{
color:#EEE;
font-size:1.5em;
}
.mamCircleMenu>div:nth-child(1)>div:nth-child(1)>svg{
/* ieのバグ対応 */
width:10em;
height:10em;
}
.mamCircleMenu>div:nth-child(1)>div:nth-child(2){
position:absolute;
left:0;
top:0;
bottom:0;
right:0;
margin:0;
padding:0;
transform-origin:-5em 50%;
}
.mamCircleMenu>div:nth-child(1)>div:nth-child(2)>div{
position:absolute;
transform-origin:0 0.5em;
color:#FFF;
}
.mamCircleMenu>div:nth-child(1)>div:nth-child(2)>div>a{
color:#FFF;
text-decoration:none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
width:auto;
}
.mamCircleMenu>div:nth-child(1)>div:nth-child(2)>div>a:hover{
color:#FFF;
text-decoration:underline dotted #DDD;
color:#DDD;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
</style>
<script>
var mamCircleMenu,mamCircleMenuDeg,mamCircleMenuId;
window.addEventListener("load",function(){
mamCircleMenu=document.querySelector(".mamCircleMenu>div:nth-child(1)>div:nth-child(2)");
let mamcs=mamCircleMenu.querySelectorAll("div");
let ct=mamcs.length;
let start_deg=26;//最大角度
let degp=start_deg*2/(ct-1);
let deg=start_deg;
for(i=0;i<ct;i++){
mamcs[i].style.left=(Math.cos(deg/180*Math.PI)*7.5-4.8)+"em";
mamcs[i].style.top =(-Math.sin(deg/180*Math.PI)*7.5+4.4)+"em";
mamcs[i].style.transform="rotate("+(-deg)+"deg)";
deg-=degp;
}
mamCircleMenuDeg=-90;
mamCircleMenuId=setInterval(function(){
if(mamCircleMenuDeg<0){
mamCircleMenuDeg+=1;
if(mamCircleMenuDeg>0){mamCircleMenuDeg=0;}
mamCircleMenu.style.transform="rotate("+mamCircleMenuDeg+"deg)";
}else{
clearInterval(mamCircleMenuId);
}
},10);
});
</script>
縦並び・横並びメニューのサンプル一覧
nav,ul,liタグとCSSを使って縦並びのメニューをつくる
CSSとJavascriptで円弧に沿った形の縦並びのメニューを作る
nav,ul,liタグとCSSを使ってカラフルなボタンの縦並びのメニューをつくる
nav,ul,liタグとCSSを使ってカラフルな縦並びのメニューをつくる
nav,ul,liタグとCSSを使って立体ボタンの縦並びのメニューをつくる
nav,ul,liタグとCSSを使って立体ボタンのカラフルな縦並びのメニューをつくる
nav,ul,liタグとCSSを使って横並びのメニューをつくる
CSSでSVGアイコンを下部に固定した横並びのメニューがあるページ作る
nav,ul,liタグとCSSを使ってサブメニューがある横並びのメニューをつくる
