画面サイズが狭くなるとメニューボタンを表示し、ナビゲーションを閉じます。
メニューボタンを押すとナビゲーションを表示・非表示します。閉じるボタンつけました。
別バージョンも参考に。レスポンシブ対応:横幅が狭くなるとメニューを折りたたみます。
【改定:2016/03/30】
JSを読み込みます
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script src="js/tool.js"></script>
[tool.js]JavaScript
$(function(){ //MENU $(function(){ $(".mod_nav").each(function() { var panelbtn=$(this).find(".navtitle"); var closebtn=$(this).find(".mod_nav_inner .closebtn"); var panelinner=$(this).find(".mod_nav_inner"); $(panelbtn).addClass("close"); //命令 $(function(){ $(panelbtn).click(function(){ if($(panelinner).css("display")=="none"){ $(panelinner).slideDown("fast").removeClass("close").addClass("open"); $(this).removeClass("close").addClass("open");}else{ $(panelinner).slideUp("fast").removeClass("open").addClass("close"); $(this).removeClass("open").addClass("close"); } }); //close $(closebtn).click(function(){ $(panelinner).slideUp("fast").removeClass("open").addClass("close"); $(panelbtn).removeClass("open").addClass("close"); }); }); }); }); //visible $(function() { var windowWidth = $(window).width(); $(window).resize(function(){ var ww = $(window).width(); if(windowWidth != ww) { if($(".navtitle").css("display")=="none") { $(".mod_nav_inner").css("display","block").removeClass("close").addClass("open"); } else { $(".mod_nav_inner").css("display","none").removeClass("open").addClass("close"); } windowWidth = ww; } }); }); });
HTMl
<nav class="mod_nav"> <p class="navtitle"><i class="fa fa-bars"></i><span>MENU</span></p> <div class="mod_nav_inner"> <ul> <li class="current"><a href="#">ホーム</a></li> <li><a href="#">ニュース</a></li> <li><a href="#">会社概要</a></li> <li><a href="#">環境活動</a></li> <li><a href="#">採用情報</a></li> <li><a href="#">お問い合わせ</a></li> </ul> <p class="closebtn"><span><i class="fa fa-times-circle"></i>メニューを閉じる</span></p> <!-- /.mod_nav_inner --></div> <!-- /.mod_nav --></nav>
CSS
/* mod_nav -----------------------------------------*/ .mod_nav { padding: 30px 0 30px 0; background-color: #FFF; /* box-shadow */ -webkit-box-shadow: 0px 2px 4px #CCC; -moz-box-shadow: 0px 2px 4px #CCC; box-shadow: 0px 2px 4px #CCC; } @media screen and (max-width:768px) { .mod_nav { position:relative; padding: 0; height: 50px; } } /* navtitle */ .mod_nav p.navtitle { display: none; } @media screen and (max-width:768px) { .mod_nav p.navtitle { position:absolute; top:8px; left:10px; display: block; font-size:20px; cursor:pointer; } .mod_nav p.navtitle i{ font-size:24px; } .mod_nav p.navtitle span{ display: block; width: 1px; height: 1px; overflow: hidden; } } /* mod_nav_inner */ .mod_nav_inner { } @media screen and (max-width:768px) { .mod_nav_inner { display:none; position:relative; top:45px; left:0; background-color:#FFF; } } .mod_nav_inner ul { margin: 0 20px 0 20px; text-align: right; } @media screen and (max-width:768px) { .mod_nav_inner ul { margin: 0; text-align: left; border-top:solid 1px #CCC; } } .mod_nav_inner ul li { display: inline-block; margin: 0 20px 0 20px; } @media screen and (max-width:768px) { .mod_nav_inner ul li { display: block; margin:0; border-bottom:solid 1px #CCC; } } .mod_nav_inner ul li a { display: block; padding: 0 0 0 20px; position: relative; } @media screen and (max-width:768px) { .mod_nav_inner ul li a { display: block; padding: 15px 0 15px 40px; } } .mod_nav_inner ul li a:before { position: absolute; margin-top: -8px; top: 50%; left: 4px; color: #000; content: " \f054"; font-family: FontAwesome; } @media screen and (max-width:768px) { .mod_nav_inner ul li a:before { left: 15px; } } .mod_nav_inner ul li a:link { color: #000; text-decoration: none; } .mod_nav_inner ul li a:visited { color: #000; text-decoration: none; } .mod_nav_inner ul li a:hover, .mod_nav_inner ul li a:hover:before { color: #009933; text-decoration: none; } .mod_nav_inner ul li a:active, .mod_nav_inner ul li a:hover:before { color: #009933; text-decoration: none; } /* mod_nav_btn */ .mod_nav_inner p.closebtn { display:none; } @media screen and (max-width:768px){ .mod_nav_inner p.closebtn{ display:block; background-color:#000; color:#FFF; margin:0; padding:10px; line-height:1; font-size:16px; cursor:pointer; text-align:center; } .mod_nav_inner p.closebtn i{ margin:0 5px 0 0; } }