ページ内の一定の高さまでスクロールしたらヘッダー位置が固定されるナビゲーションを作っているのですが、jQueryで、設定したセレクタを追加したらヘッダーの幅が変わってしまいます。幅が変わらないようにするにはどうすればよいのでしょうか。
画面をスクロールしてclass="logo_area"のbottomにウィンドウ上部が到達したらjQueryを利用してclass="head_menu"に.fixedを追加してヘッダーが固定されるようにしました。
ヘッダー自体はちゃんと固定されるのですが、固定した際にheaderの幅があらかじめbody{}で設定してある1920pxから1866.670pxに縮んでしまいます。
ヘッダーを固定しても幅が1920pxのままにするようにしたいです。
HTML
1 <h1 class="logo_area"> 2 <a href="top.html"><img class="logo" src="img/logo.png" alt=""></a> 3 </h1> 4 <header class="site-header"> 5 <nav class="head_menu"> 6 <ul> 7 <li class="head_list"><a href="#">aaa</a></li> 8 <li class="head_list"><a href="#">bbb</a></li> 9 <li class="head_list"><a href="#">ccc</a></li> 10 <li class="head_list"><a href="#">ddd</a></li> 11 <li class="head_list"><a href="#">eee</a></li> 12 </ul> 13 </nav> 14 </header>
css
1.logo_area{ 2 height: 100px; 3 background-color: #fff; 4 display: flex; 5 justify-content:center; 6 align-items: center; 7} 8.logo{ 9 height: 60px; 10} 11 12.site-header{ 13 position: relative; 14} 15 16.head_menu{ 17 width: 100%; 18 position: absolute; 19} 20.head_menu.fixed{ 21 position:fixed; 22 width:100%; 23 box-sizing: border-box; 24 top:0; 25} 26.head_menu ul{ 27 display:flex; 28 background-color: #000; 29 height: 100px; 30 justify-content:center; 31 align-items: center; 32} 33 34.head_list{ 35 font-size:25px; 36 padding-right: 50px; 37} 38.head_list::before{ 39 content: ""; 40 border-left: #fff solid 2px; 41 padding-left: 50px; 42} 43.head_list:first-child::before{ 44 display: none; 45}
javascript
1//ヘッダーロゴ格納、メニュー固定 2$(function(){ 3var _window = $(window), 4 _header = $('.head_menu'), 5 logoBottom; 6_window.on('scroll',function(){ 7 logoBottom = $('.logo_area').height(); 8 if(_window.scrollTop() > logoBottom){ 9 _header.addClass('fixed'); 10 } 11 else{ 12 _header.removeClass('fixed'); 13 } 14}); 15_window.trigger('scroll'); 16}); 17
回答1件
あなたの回答
tips
プレビュー