ハンバーガーメニューのコピペ

JavaScript

	(function () {
		const $hamburger = document.querySelector('.gnav_hamburger');
		$hamburger.addEventListener('click', function(){
			$hamburger.classList.toggle('is_active')
		});
		
		const $wrapper = document.getElementById('wrap');
		const $navBtn = document.getElementById('gnav-toggle');
		
		$navBtn.addEventListener('click', navToggle);
		
		function navToggle() {
			if ($wrapper.classList.contains('gnav_open')) {
				navCloseFunc();
			} else {
				navOpenFunc();
			}
		}
		function navOpenFunc() {
			$wrapper.classList.add('gnav_open');
		}
		function navCloseFunc() {
			$wrapper.classList.remove('gnav_open');
		}
	})();
CSS

	#gnav-toggle {
		display: block;
		width: calc(100 / 750 * 100vw);
		height: calc(100 / 750 * 100vw);
		background: black;
		border: none;
		position: fixed;
		top: 2.8vw;
		right: 2.8vw;
		z-index: 10000;
		outline: none;
	}
	.gnav_hamburger .gnav_text{
		width: 100%;
		text-align: center;
		letter-spacing: 0;
		font-size: calc(20 / 750 * 100vw);
		color: #fff;
		position: absolute;
		bottom: 1.5vw;
		left: 0; right: 0;
	}
	.gnav_hamburger .gnav_icon {
		width: calc(40 / 750 * 100vw);
		height: 2px;
		position: absolute;
		top: -3.5vw;
		bottom: 0;
		left: 0;
		right: 0;
		margin: auto;
		background: #fff;
		transition: transform .3s ease-in-out;
	}
	.gnav_hamburger .gnav_icon:before, .gnav_hamburger .gnav_icon:after {
		content: "";
		width: 100%;
		height: 2px;
		position: absolute;
		left: 0;
		background: #fff;
		transition: transform .3s ease-in-out;
	}
	.gnav_hamburger .gnav_icon:before {top: -1.5vw;}
	.gnav_hamburger .gnav_icon:after {bottom: -1.5vw;}
	.is_active .gnav_icon {background: none;}
	.is_active .gnav_icon:before, .is_active .gnav_icon:after {transition: transform .3s ease-in-out;}
	.is_active .gnav_icon:before {transform: rotate(45deg);top: 0;}
	.is_active .gnav_icon:after {transform: rotate(-45deg);bottom: 0;}

	.gnav {
		width: 80%;
		padding: 25vw 0 0;
		overflow-y: auto;
		overflow-x: hidden;
		color: #333;
		background: rgba(255,255,255,.9);
		position: fixed;
		top: 0;
		right: 0;
		z-index: 9999;
		height: 100%;
		visibility: hidden;
		opacity: 0;
		transition: opacity .6s ease, visibility .6s ease;
		line-height: 1.45;
	}
	.gnav_open .gnav {
		visibility: visible;
		opacity: 1;
	}
	.gnav .menu-gnav-container{padding-bottom:  20vw;}
	.menu-gnav-container > ul {
		padding: 0 3vw;
		display: block;
	}
	.menu-gnav-container > ul > li {
		opacity: 0;
		border-bottom: 1px solid black;
		transform: translateX(50%);
		transition: transform .6s ease, opacity .2s ease;
	}
	.gnav_open .menu-gnav-container > ul > li{
		opacity: 1;
		transform: translateX(0);
		transition: transform 1s ease, opacity .9s ease;
	}
	.menu-gnav-container > ul > li:first-child {border-top: 1px solid black;}
	.menu-gnav-container > ul > li > a {
		display: block;
		width: 100%;
		padding: 3vw 4vw 2.5vw 5vw;
		position: relative;
	}
	.menu-gnav-container > ul > li > a:after {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		bottom: .25vw;
		width: 0;
		height: 0;
		border-left: calc(16 / 750 * 100vw) solid black;
		border-top: calc(12 / 750 * 100vw) solid transparent;
		border-bottom: calc(12 / 750 * 100vw) solid transparent;
		margin: auto;
	}
PHP

<div class="sm:hidden cover_gnav_hamburger">
<button type="button" id="gnav-toggle" class="gnav_hamburger ">
<span class="gnav_icon"></span>
<span class="gnav_text">MENU</span>
</button>
</div>
<div class="gnav ">
<?php
wp_nav_menu(
array(
'theme_location' => 'main-menu',
'container' => 'nav',
)
);
?>
</div>

WrodPressのナビの設定

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です