画面横からスライドして表示されるナビゲーションメニューの作り方

画面の横にチラッと見えていて、マウスホバーすると横からスライドして表示されるナビゲーションメニューの作り方をご紹介します。
サブナビゲーション的な役割のメニューなどで、こういうUIたまに見ますよね。グローバルナビゲーションとは別に下層ページに個別のナビゲーションを設置したいときなどに使えるかと思います。
画面横からスライドして表示されるナビゲーションメニュー
■HTML
<ul id="slide_menu">
<li><a href="#">Menu01</a></li>
<li><a href="#">Menu02</a></li>
<li><a href="#">Menu03</a></li>
<li><a href="#">Menu04</a></li>
<li><a href="#">Menu05</a></li>
<li><a href="#">Menu06</a></li>
</ul>
HTMLはごくごくシンプルに、一般的なリストの形ですね。
■CSS
#slide_menu {
background: #fff;
padding: 30px 20px;
margin-top: -200px;
position: fixed;
top: 50%;
z-index: 10000;
box-shadow: 0px 0px 10px rgba(0,0,0,0.2);
width: 250px;
box-sizing: border-box;
}
#slide_menu li a:link,
#slide_menu li a:visited {
color: #5d5d5d;
text-decoration: none;
}
#slide_menu li a:hover,
#slide_menu li a:active {
color: #EB714E;
text-decoration: underline;
}
コンテンツとの重なりを表現するため、ここではbox-shadowを指定しています。
また、位置の指定はpositionで行っています。そのため、#slide_menuの親要素にposition:relative;を忘れずに指定しておきましょう。他のコンテンツとの重なり具合を見つつ、適宜z-indexを指定しておくといいと思います。
■jQuery
$(function(){
$('#slide_menu').css({
right: '-200px',
});
$('#slide_menu')
.on('mouseover', function(){
$(this).stop(true).animate({
right: 0
}, 200, 'easeInOutCubic');
})
.on('mouseout', function(){
$(this).stop(true).animate({
right: '-200px'
}, 200, 'easeInOutCubic');
});
});
#slide_menuは、初期状態で右に200px隠し、50pxだけチラ見せしておきます。
そして、マウスホバーするとアニメーションでスライドさせ、マウスが外れると元の位置へという流れです。
この記事を気に入ったら
いいね!&フォローしよう最新情報をお届けします