MENU

アコーディオンメニュー

bodyタグ終了直前に出力するコード </body>直前

<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
//ドロップダウンの設定を関数でまとめる
function mediaQueriesWin(){
	var width = jQuery(window).width();
	if(width <= 768) {//横幅が768px以下の場合 jQuery(".has-child>a").off('click');	//has-childクラスがついたaタグのonイベントを複数登録を避ける為offにして一旦初期状態へ
		jQuery(".has-child>a").on('click', function() {//has-childクラスがついたaタグをクリックしたら
			var parentElem =  jQuery(this).parent();// aタグから見た親要素のliを取得し
			jQuery(parentElem).toggleClass('active');//矢印方向を変えるためのクラス名を付与して
			jQuery(parentElem).children('ul').stop().slideToggle(500);//liの子要素のスライドを開閉させる※数字が大きくなるほどゆっくり開く
			return false;//リンクの無効化
		});
	}else{//横幅が768px以上の場合
		jQuery(".has-child>a").off('click');//has-childクラスがついたaタグのonイベントをoff(無効)にし
		jQuery(".has-child").removeClass('active');//activeクラスを削除
		jQuery('.has-child').children('ul').css("display","");//スライドトグルで動作したdisplayも無効化にする
	}
}

// ページがリサイズされたら動かしたい場合の記述
window.resize = function() {
	mediaQueriesWin();/* ドロップダウンの関数を呼ぶ*/
};

// ページが読み込まれたらすぐに動かしたい場合の記述
window.onload = function(){
	mediaQueriesWin();/* ドロップダウンの関数を呼ぶ*/
};
<nav>
<ul>
	
<li class="has-child"><a href="https://kotowork.com/exterior/design/design_category/shinchiku/">新築外構</a><ul>
<li class="has-child"><a href="https://kotowork.com/exterior/design/design_category/shinchiku/shinchiku-open/">オープン外構</a><ul>
<li><a href="https://kotowork.com/exterior/design/design_category/shinchiku/shinchiku-open/shinchiku-open-simplemodern/">シンプルモダン</a></li>
<li><a href="https://kotowork.com/exterior/design/design_category/shinchiku/shinchiku-open/shinchiku-open-natural/">ナチュラル</a></li>
<li><a href="https://kotowork.com/exterior/design/design_category/shinchiku/shinchiku-open/shinchiku-open-luxury/">ラグジュアリー</a></li>
<li><a href="https://kotowork.com/exterior/design/design_category/shinchiku/shinchiku-open/shinchiku-open-wamodern/">和モダン</a></li>
</ul>
</li>
<li class="has-child"><a href="#">クローズ外構</a><ul>
<li><a href="#">シンプルモダン</a></li>
<li><a href="#">ナチュラル</a></li>
<li><a href="#">ラグジュアリー</a></li>
<li><a href="#">和モダン</a></li>
</ul>
</li>
<li class="has-child"><a href="#">セミクローズ外構</a><ul>
<li><a href="#">シンプルモダン</a></li>
<li><a href="#">ナチュラル</a></li>
<li><a href="#">ラグジュアリー</a></li>
<li><a href="#">和モダン</a></li>
</ul>
</li>
</ul>
</li>
	
<li class="has-child"><a href="#">リフォーム外構</a><ul>
<li class="has-child"><a href="#">アプローチ他</a><ul>
<li><a href="#">シンプルモダン</a></li>
<li><a href="#">ナチュラル</a></li>
<li><a href="#">ラグジュアリー</a></li>
<li><a href="#">和モダン</a></li>
</ul>
</li>
<li class="has-child"><a href="#">ガレージ</a><ul>
<li><a href="#">シンプルモダン</a></li>
<li><a href="#">ナチュラル</a></li>
<li><a href="#">ラグジュアリー</a></li>
<li><a href="#">和モダン</a></li>
</ul>
</li>
<li class="has-child"><a href="#">中庭</a><ul>
<li><a href="#">シンプルモダン</a></li>
<li><a href="#">ナチュラル</a></li>
<li><a href="#">ラグジュアリー</a></li>
<li><a href="#">和モダン</a></li>
</ul>
</li>
</ul>
</li>
	
<li><a href="#">オーダーメイド</a>
</li>

</ul>
</nav>
/* ナビゲーションドロップダウンのためのCSS */

/*==ナビゲーション全体の設定*/

nav{
/* width:15%;/*navの外側のheaderなどに横幅を指定する場合は削除してください*/ */
}

nav ul{
	list-style: none;
/* 	text-align: center; */
}


/*下の階層のulや矢印の基点にするためliにrelativeを指定*/
nav ul li{
	position: relative;
}

/*ナビゲーションのリンク設定*/
nav ul li a{
	display: block;
	text-decoration: none;
	color: #333;
	padding:0.75em 1em 0.75em 1.5em;
	transition:all .3s;
	line-height: 1.4;
	border-bottom: 1px solid rgba(0,0,0,0.1)
}

nav ul li a:hover{
	color:#666;	
}

/*==矢印の設定*/

/*2階層目を持つliの矢印の設定*/
nav ul li.has-child::before{
	content:'';
	position: absolute;
	right:30px;
	top:20px;
	width:6px;
	height:6px;
	border-top: 2px solid #999;
    border-right:2px solid #999;
    transform: rotate(45deg);
}

/*3階層目を持つliの矢印の設定*/
nav ul ul li.has-child::before{
	content:'';
	position: absolute;
	right:30px;
	top:20px;
	width:6px;
	height:6px;
	border-top: 2px solid #999;
    border-right:2px solid #999;
    transform: rotate(45deg);
}

/*== 2・3階層目の共通設定 */

/*下の階層を持っているulの指定*/
nav li.has-child ul{
    /*絶対配置で位置を指定*/
	position: absolute;
	left:100%;
	top:10px;
	z-index: 4;
    /*形状を指定*/
	background:#fff;
	width:200px;
    /*はじめは非表示*/
	visibility: hidden;
	opacity: 0;
    /*アニメーション設定*/
	transition: all .3s;
}

/*hoverしたら表示*/
nav li.has-child:hover > ul,
nav li.has-child ul li:hover > ul,
nav li.has-child:active > ul,
nav li.has-child ul li:active > ul{
  visibility: visible;
  opacity: 1;
}

/*ナビゲーションaタグの形状*/
nav li.has-child ul li a{
	color: #333;
	border-bottom:solid 1px rgba(255,255,255,0.6);
}

nav li.has-child ul li:last-child a{
	border-bottom:none;
}

nav li.has-child ul li a:hover,
nav li.has-child ul li a:active{
	background:#ededed;
}

/*==3階層目*/

/*3階層目の位置*/
nav li.has-child ul ul{
	top:0;
	left:200px;
	background:#fff;
}

nav li.has-child ul ul li a:hover,
nav li.has-child ul ul li a:active{
	background:#ededed;
}
目次