前回に引き続き、ドロワーメニューを作ってみました。
前回と違うのは、3本線と×印を画像にしていることです。
span
を使っていたのを、画像を使って実装してみました。
前回実装したドロワーメニューに興味があるなら、是非こちらのURLを見てください!
ドロワーメニューを作ってみた
#ソース
ソースは前回のものをベースに、修正を加えています。
では、いつものようにソースを載せときますね。
drower_practice.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ドロワーメニュー 練習</title>
<link rel="stylesheet" type="text/css" href="./css/slide.css">
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="./js/slide.js"></script>
</head>
<body>
<div class="drower_menu">
<img src="./img/drower_open.png" alt="drower_open" id="drower_open" class="flag_on">
<img src="./img/drower_close.png" alt="drower_close" id="drower_close" class="flag_off">
<nav id="drower_menu_list">
<ul class="close">
<li><a href="#">メニュー1</a></li>
<li><a href="#">メニュー2</a></li>
<li><a href="#">メニュー3</a></li>
<li><a href="#">メニュー4</a></li>
<li><a href="#">メニュー5</a></li>
</ul>
</nav>
</div>
</body>
</html>
drower.css
.drower_menu img {
position: fixed;
top: 20px;
right: 20px;
display: inline-block;
opacity: 1;
transform: translateX(0);
transition: all .5s;
}
.drower_menu img.flag_on {
z-index: 100;
opacity: 1;
}
.drower_menu img.flag_on:hover {
cursor: pointer;
}
.drower_menu img.flag_off {
z-index: 99;
opacity: 0;
}
#drower_menu_list {
height: 100%;
width: 250px;
position: fixed;
top: 0;
right: 0;
z-index: 0;
padding-top: 100px;
background-color: rgb(16, 69, 153, 0.8);
transform: translateX(250px);
transition: all .5s;
}
#drower_menu_list ul {
list-style: none;
}
#drower_menu_list li {
text-align: center;
padding: 10px 0;
list-style: none;
}
#drower_menu_list a {
color: white;
text-decoration: none;
}
#drower_menu_list.open {
transform: translateX(0)
}
drower.js
$(function ($) {
$('#drower_open').on('click', function() {
if($(this).hasClass('flag_on')) {
$(this).removeClass('flag_on');
$(this).addClass('flag_off');
$('#drower_close').removeClass('flag_off');
$('#drower_close').addClass('flag_on');
$('#drower_menu_list').removeClass('close');
$('#drower_menu_list').addClass('open');
}
});
$('#drower_close').on('click', function() {
if($(this).hasClass('flag_on')) {
$(this).removeClass('flag_on');
$(this).addClass('flag_off');
$('#drower_open').removeClass('flag_off');
$('#drower_open').addClass('flag_on');
$('#drower_menu_list').removeClass('open');
$('#drower_menu_list').addClass('close');
}
});
});
#画像
画像は自分で作ってみました。
汚いですが、もしドロワーメニューで画像を使いたい場合は、是非使ってください!
#解説
基本的にやっていることは、前回と変わらないです。
jQuery
のremoveClass
とaddClass
、CSS
のtransform
とtransition
を使って、メニューのスライドを実装しています。
#参考資料
【jQuery】ドロワーメニュー 横からスライド表示するメニュー
たった10行でできる!ドロワーメニューの作り方