ハンバーガーボタンとドロワーメニュー
ハンバーガーメニュー仕組み
・HTML
・CSS
・javascript(jquery)
1.HTMLで「ハンバーガーアイコン」と「表示されるメニュー」を作成
2.JavaScript(jquery)でハンバーガーアイコンのクリックアクションを作成
3.2のクリックアクションでそれぞれのdivにclassを加えたり消したりする
4.3のclassの有無でdivのCSSが変化し、メニューの表示・非表示が行われる
1.ハンバーガー(三)ボタン
(三)ボタンを押すと(☓)ボタンに切り替わりメニューが表示される
2.閉じる(☓)ボタン
閉じるボタンを押すとメニューが非表示になり、(三)ボタンに切り替わる
3.メニュー部分(通常時非表示)(クリック時表示)
閉じるボタンを押すとメニュー部分が非表示になる
(例)ハンバーガーメニューの作り方(順番)
1.ハンバーガーメニューになる元を作る
2.ハンバーガーメニューの背景を作る(配置)
3.ボタン(三本線)を作る
4.クリックしたら閉じるボタン(☓)にする(切り替え)
5. メニューを表示・非表示にする
他にも作り方があり、このつくり方が正しいとは限らない。
※spanで作ったり、divやチェックボックス、a、buttonなどで作っているのを見かける。
1. ハンバーガーボタンのもとになるコード
<div class="humburger"><!--ハンバーガーボタン-->
<span></span>
<span></span>
<span></span>
</div>
2.背景作る
.humburger {
background-color: beige; /*分かりやすく色をbeigeに*/
position: fixed; /*今回は固定して作ってます*/
top: 10px;
right: 10px;
width: 40px;
height: 40px;
}
3.三本線を作る
.humburger span {
width: 30px;
height: 1px;
background-color: #333;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: 0.3s; /*真ん中の線がゆっくり消えるように*/
}
.humburger span:nth-of-type(1) {
transform: translate(-50%, -10px);
}
.humburger span:nth-of-type(3) {
transform: translate(-50%, 9px);
}
4.クリックしたら☓ボタンになるように切り替え
真ん中の線を消して、上下の線を☓にする。
.humburger.active span:nth-of-type(1) {
transform: rotate(45deg) translate(-50%, 0);
transform-origin: 0% 50%;
}
.humburger.active span:nth-of-type(2) {
opacity: 0;
}
.humburger.active span:nth-of-type(3) {
transform: rotate(-45deg) translate(-50%, 0);
transform-origin: 0% 50%;
}
クリックしたらactiveを追加するようにする
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("humburger").addEventListener("click", function() {
this.classList.toggle("active")
})
});
5.メニューを表示・非表示にする
元になるメニュー作り、CSSで配置や色などを決める。
クリックしたら右からnavが表示され、もう一度クリックすると閉じるようにする。(ドロワーメニュ-みたいにする)
<nav id="nav">
<ul>
<li><a href="">menu0</a></li>
<li><a href="">menu1</a></li>
<li><a href="">menu2</a></li>
<li><a href="">menu3</a></li>
<li><a href="">menu4</a></li>
</ul>
</nav>
nav {
position: fixed;
top: 0px;
right: -200px;
width: 180px;
height: 100%;
padding: 40px 30px 0 0;
opacity: 0;
transition: 0.4s;
visibility: hidden;
background-color: #ddd;
text-align: center;
z-index: -1;
}
nav.active {
opacity: 1;
visibility: visible;
right: 0;
}
a {
font-size: 2rem;
color: black;
}
li {
padding: 5px 0 10px 0;
padding-top: 20px;
}
4で書いたjavascriptに(navのactiveを追加する)
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("humburger").addEventListener("click", function() {
this.classList.toggle("active");
document.getElementById("nav").classList.toggle("active");
})
});
今回記述したコードで作ったもの
Author And Source
この問題について(ハンバーガーボタンとドロワーメニュー), 我々は、より多くの情報をここで見つけました https://qiita.com/masaki1117/items/3d033a6b5f78cf279e16著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .