Warning: Trying to access array offset on value of type bool in /home/yotigory/codingmania.net/public_html/wp-content/plugins/search-everything/config.php on line 29
レスポンシブ対応:横幅が狭くなるとメニューを折りたたみます。 - CodingMania

2013/1/22

レスポンシブ対応:横幅が狭くなるとメニューを折りたたみます。

画面サイズが狭くなるとメニューボタンを表示し、ナビゲーションを閉じます。

メニューボタンを押すとナビゲーションを表示・非表示します。閉じるボタンつけました。
別バージョンも参考に。レスポンシブ対応:横幅が狭くなるとメニューを折りたたみます。
【改定: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;
}

}