HTML
<div class="hamburger">
<span class="hamburger-line hamburger-line-1"></span>
<span class="hamburger-line hamburger-line-2"></span>
<span class="hamburger-line hamburger-line-3"></span>
</div>
<div class="header-nav-sp" style="display:;">
</div>
jQuery
開閉状態の判定
$(document).ready(function() {
$(".hamburger").click(function(){
$("body").toggleClass('nav-open');
});
});
CSS
ハンバーガーメニュー部分
.hamburger {
position: absolute;
right: 15px;
top: 5px;
width: 50px;
height: 50px;
z-index: 300;
}
.hamburger-line {
position: absolute;
left: 0;
width: 25px;
height: 2px;
background-color: #111;
transition: all .6s;
}
.hamburger-line-1 {
top: 26px;
}
.hamburger-line-2 {
top: 34px;
}
.hamburger-line-3 {
top: 42px;
}
.nav-open .hamburger-line-1 {
transform: rotate(45deg);
top: 30px;
}
.nav-open .hamburger-line-2 {
width: 0;
left: 50%;
}
.nav-open .hamburger-line-3 {
transform: rotate(-45deg);
top: 30px;
}
メニューコンテンツ部分
.header-nav-sp {
position: fixed;
right: -200px;
top: 0;
bottom: 0;
width: 200px;
padding-top: 40px;
background-color: #fff;
transition: all .6s;
z-index: 200;
overflow-y: auto;
-webkit-overflow-scrolling: touch;
}
.nav-open .header-nav-sp{
right: 0;
padding-top: 40px;
}
開いたときに背景を暗くする
HTML
<div class="menu-status"></div>
CSS 方法1
.menu-status {
background: rgba(0,0,0,0);
transition: all 0.3s ease-in-out 0s;
}
.nav-open .menu-status {
background: rgba(0,0,0,.7);
position: absolute;
width: 100%;
height: 100%;
z-index: 5;
}
CSS 方法2
.menu-status {
position: fixed;
left: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
height: -webkit-fill-available;
z-index: 11;
background-color: #000;
opacity: 0;
visibility: hidden;
transition: all .5s;
}
.nav-open .menu-status {
opacity: .8;
visibility: visible;
}
jQuery
$(document).ready(function() {
$(".menu-status").click(function(){
$("body").toggleClass('nav-open');
});
});