クリックするとトリガーが×になるドロワーメニュー
- 投稿日:2021/10/20 |最終更新:2021/10/23
- JavaScript/jQuery
- ドロワーメニュー
バーガーなどのトリガーに動きがあるとリッチな印象を与えるので、よく使うコードを置いておきます。
CSSだけでトリガーが変わるドロワーサンプル
案件によってはJavascriptが使えない場合もあるので、その場合は下記のようにチェックボックスのオン・オフでトリガーやメニューの開閉を切り替えます。
表示サンプル
HTML記述例
<div id="sample1">
<input type="checkbox" id="sample1-trig" name="sample1-trig">
<label for="sample1-trig">
<u></u>
<u></u>
<u></u>
<span>MENU</span>
<div class="menu-list">
<ul>
<li>サンプル</li>
<li>サンプル</li>
<li>サンプル</li>
</ul>
</div>
</label>
</div>
CSS記述例
#sample1 input{
display: none;
}
#sample1 label{
margin: 0;
width: 50px;
height: 50px;
background: #eee;
margin: 10px;
padding: 5px 10px;
text-align: center;
cursor: pointer;
position: relative;
}
#sample1 label u{
display: block;
width: 100%;
height: 3px;
border-radius: 10px;
margin: 5px auto;
background: #000;
transition: .5s all;
}
#sample1 input:checked + label u:nth-child(1){
transform: translateY(8px) rotate(-45deg);
}
#sample1 input:checked + label u:nth-child(2){
opacity: 0;
}
#sample1 input:checked + label u:nth-child(3){
transform: translateY(-8px) rotate(45deg);
}
#sample1 span{
font-size: 10px;
line-height: 1;
font-weight: bold;
display: block;
}
#sample1 .menu-list{
height: 0;
width: 200px;
overflow: hidden;
background: #eee;
transition: .5s all;
z-index: -1;
opacity: 0;
}
#sample1 input:checked + label .menu-list{
height: auto;
position: absolute;
top: 50px;
left: 0;
z-index: 1;
opacity: 1;
}
CSSとjQueryでトリガーが変わるドロワーサンプル
ドロワーの開閉をjQueryに頼っています。
トリガーの開閉はjQueryとCSSを利用しています。
jQueryが既に読み込まれている環境下でご利用ください。
表示サンプル
MENU
HTML記述例
<div id="sample2">
<i id="sample2-trig">
<u></u>
<u></u>
<u></u>
<span>MENU</span>
</i>
<div id="sample2-menu" class="menu-list">
<ul>
<li>サンプル</li>
<li>サンプル</li>
<li>サンプル</li>
</ul>
</div>
</div>
CSS記述例
#sample2{
position: relative;
}
#sample2-trig{
margin: 0;
display: block;
width: 50px;
height: 50px;
background: #eee;
margin: 10px;
padding: 5px 10px;
text-align: center;
cursor: pointer;
position: relative;
}
#sample2-trig u{
display: block;
width: 100%;
height: 3px;
border-radius: 10px;
margin: 5px auto;
background: #000;
transition: .5s all;
}
.open #sample2-trig u:nth-child(1){
transform: translateY(8px) rotate(-45deg);
}
.open #sample2-trig u:nth-child(2){
opacity: 0;
}
.open #sample2-trig u:nth-child(3){
transform: translateY(-8px) rotate(45deg);
}
#sample2-trig span{
font-size: 10px;
line-height: 1;
font-weight: bold;
display: block;
}
#sample2 .menu-list{
display: none;
height: auto;
width: 200px;
background: #eee;
position: absolute;
top: 50px;
left: 0;
z-index: 1;
}
JS記述例
$(function() {
$( '#sample2-trig' ).on( 'click', function(){
$( '#sample2' ).toggleClass( 'open' );
$( '#sample2-menu' ).slideToggle();
});
});
まとめ
バーガーメニューのトリガーが変わるとドロワーメニューが少々リッチな印象になります。
レスポンシブサイトの作成の際などに参考にしてください。
この記事が気に入ったらシェアしてください