fixed固定させたheader内にトグルメニューがあります。
headerを通常はheight: auto;とし、
メニューを開いた際のheaderの高さが、ウィンドウの高さより高くなる場合は
メニューを開いた時にだけ、height: 100%; overflow-y: scroll; としてスクロール可能にしたいと思っています。
jQueryでメニューを開いた際のheaderの高さが、ウィンドウの高さより高くなる場合にだけ、
headerにscrollHeaderをいうクラスを追加して、.scrollHeaderにheight: 100%; overflow-y: scroll;を指定したいのですが、
以下のjavascriptの記述では、headerHeightがメニューを開く前の高さを取得してしまうようです。
headerHeightにメニューを開いた時の高さを取得するにはどうしたらよいのでしょうか?
HTML
1<header id="header"> 2 <h1 id="logo"><a href="../index.php"><img src="../img/common/logo.svg" alt=""></a></h1> 3 <div class="navWrap"> 4 <div class="navicon"> 5 <p class="nav-txt">MENU</p> 6 <div class="nav-toggle"></div> 7 </div> 8 <div class="navBox"> 9 <nav id="globalNav"> 10 <ul class="gNav-main clearfix"> 11 <li><a href="#">ナビ</a></li> 12 <li><a href="#">ナビ</a></li> 13 <li><a href="#">ナビ</a></li> 14 <li><a href="#">ナビ</a></li> 15 <li><a href="#">ナビ</a></li> 16 <li><a href="#">ナビ</a></li> 17 <li><a href="#">ナビ</a></li> 18 </ul> 19 </nav> 20 </div> 21 </div> 22</header> 23
javascript
1jQuery(function($){ 2 $(".navicon").on("click", function() { 3 $(".navBox").slideToggle(); 4 $(this).toggleClass("active"); 5 6 var windowHeight = window.innerHeight; 7 var headerHeight = $("#header").innerHeight(); 8 if (windowHeight < headerHeight) { 9 $("#header").toggleClass("scrollHeader"); 10 } 11 12 }); 13}); 14
css
1#header { 2 width: 100%; 3 height: auto; 4 background: #000; 5 position: fixed; 6 top: 0; 7 left: 0; 8 z-index: 10; 9} 10 11#header.scrollHeader { 12 height: 100%; 13 overflow-y: scroll; 14} 15 16.navBox { 17 display: none; 18} 19 20
上記のように記述しましたが、うまくいかず、、headerHeightにクリックで展開後の高さを取得するにはどうしたらよいのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。