2017-06-01 2 views
0

私はモバイル上でブートストラップナビバーの上に固定コンテンツを持っています。下にスクロールすると、navbarが50px上に移動します(navbarの上のコンテンツは50pxの高さです)。すべてがうまくいきますが、携帯電話でアドレスバーが消えるとすぐに、トップのコンテンツが再び表示され、その理由を理解できません。サイズ変更中のデスクトップでは正常に動作しています。このような行動を防ぐにはどうすればいいですか?モバイルスクロールに隠されるべきときに、navbarの上のヘッダーが表示されます

HTML

<div class="container" id="header-top-logo"><a href="/"><img src="assets/logo_reverse.svg" class="logo" alt="Superhoidjad"></a></div> 
<nav class="navbar navbar-fixed-top"> 
    <div class="container"> 
     <div class="col-md-12"> 
     <!-- Brand and toggle get grouped for better mobile display --> 
     <a class="navbar-brand" class="pull-left" href="{{route('main.home')}}"><img src="assets/logo.svg" class="logo" alt="Superhoidjad"></a> 
     <!-- Collect the nav links, forms, and other content for toggling --> 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
      <ul class="nav navbar-nav navbar-right navbar-item"> 
       {{-- 
       <li class="nav-item"><a class="nav-link" href="/login">Sisene</a></li> 
       <li class="nav-item"><a class="nav-link" href="/signup/family">Registreeri&nbsp</a></li> 
       --}} 
       <li class="nav-item {{ Route::current()->getName() == 'main.about' ? 'active' : '' }}"><a class="nav-link" href="{{route('main.about')}}">Meist</a></li> 
       <li class="nav-item {{ Route::current()->getName() == 'main.articles.all' ? 'active' : '' }}"><a class="nav-link" href="{{route('main.articles.all')}}">Artiklid</a></li> 
       <li class="nav-btn{{ Route::current()->getName() == '' ? 'active' : '' }}"><a href="#" data-toggle="modal" data-target="#parent_signup" class="search-nanny">Saada kutse</a></li> 
      </ul> 
     </div> 
     </div> 
    </div> 
</nav> 

私のJS

//top logo scroll function 
function logoScroll() { 
    $(window).scroll(function() { 
     if ($(window).scrollTop() >= 50) { 
      $(".navbar").css("top", "0px"); 
     } else { 
      $(".navbar").css("top", "50px"); 
     } 
    }); 
} 

//hide top logo on load 
var wdwWidth = $(window).width(); 
if (wdwWidth <= 991) { 
    $(".navbar").css("top", 50); 
    logoScroll(); 
} else { 
    $(".navbar").css("top", "0px"); 
} 

答えて

0

あなたにも、resizeイベントに応答して試してみてください。これにあなたのjsの変更について

方法
$window.resize(function(){ 
    if ($(window).scrollTop() >= 50) { 
     $(".navbar").css("top", "0px"); 
    } else { 
     $(".navbar").css("top", "50px"); 
    } 
}); 
+0

私はそれを持っていた、ちょうどそれを書きたいと思わなかった。それは関係ないと思った。 – raqulka

0

//top logo scroll function 
function logoScroll() { 
    $(window).scroll(function() { 
     if ($(window).scrollTop() >= 50) { 
      $(".navbar").css("top", "0px"); 
      $("#header-top-logo").css("display", "none"); 
     } else { 
      $(".navbar").css("top", "50px"); 
      $("#header-top-logo").css("display", "block"); 
     } 
    } 
}); 

EDIT:

私はダンが本当にで何が起こっているのかを理解して...多分.cssの機能は場所を切り替える必要があります(これを試してみてくださいurコード):

//hide top logo on load 
    var wdwWidth = $(window).width(); 
    if (wdwWidth <= 991) { 
      $("#header-top-logo").css("display", "block"); 
    } else { 
      $("#header-top-logo").css("display", "none"); 
    } 
+0

全く助けにならない。 – raqulka

+0

@raqulkaあなたはどういう意味ですか?アドレス欄が消えたときにヘッダートップロゴのコンテンツ#が表示されますか?そうであれば、if文は機能しません。画面の上部とナビゲーションバーの間にギャップがあり、アドレスフィールドが消えても、ヘッダートップロゴのコンテンツが表示されていない場合は、スクリーンサイズや本体に何かがあります間違っている。 – Olof

+0

@olufヘッダーのロゴが消えているので、ifステートメントが機能しています。私が質問に書いたように、それはデスクトップ上では問題なく動作しますが、アドレスバーが消えるとすぐにモバイル上でnavbarが50px下がってギャップを残します。もう一度スクロールすると、navbarが先頭に戻ります。私はこれを引き起こしているのか分かりません。 – raqulka

関連する問題