2017-11-19 10 views
0

スクロール時に縮小されるnavbarを持っていますが、navbar-navのliは画像を持っています。スクロール時にnavbarが縮小すると画像は残りますが、テキスト表示はnoneになります。scoll後のホバー機能

私は、このテキストが消えた後にこのテキストを表示する機能がありますが、問題があります。この機能は、navbarが縮小した後でのみ機能し、navbarが正常なサイズになっても、この関数はうまく機能し、別のものは、私はそれがすべてのスパンをテキストで表示するので、私は唯一の子供が欲しいので、私は.children()メソッドを試しましたが、動作しなかった、助けてください!ここに私のコードは次のとおりです。

$(window).scroll(function() { 
 
     if ($(document).scrollTop() > 50) { 
 
     $('nav').addClass('shrink'); 
 
     } else { 
 
     $('nav').removeClass('shrink'); 
 
     } 
 
    }); 
 

 
$('.home').hover(function() { 
 
\t $(this).css('margin-right', '5px'); 
 
    $('.navbar-nav li a span').css('display', 'block'); 
 
\t $('.navbar-nav li a').css('height', '155px'); 
 
\t $('.navbar-nav li a img').css('margin-right', '5px'); 
 
});
body { 
 
     padding-top: 50px; 
 
     min-height:800px 
 
    } 
 

 
    nav a { 
 
     padding-top: 20px !important; 
 
     padding-bottom: 20px !important; 
 
     font-size: 18px; 
 
    } 
 

 
    nav .navbar-toggle { 
 
     margin: 13px 15px 13px 0; 
 
     -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; \t 
 
    } 
 

 
    .navbar-brand { 
 
     font-size: 30px; 
 
      -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; 
 
    } 
 

 
    nav.navbar.shrink { 
 
     min-height: 35px; 
 
     -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; \t 
 
    } 
 

 
    nav.shrink a { 
 
     padding-top: 10px !important; 
 
     padding-bottom: 10px !important; 
 
     font-size: 15px; 
 
    } 
 

 
    nav.shrink .navbar-brand { 
 
     font-size: 25px; 
 
    } 
 

 
    nav.shrink .navbar-toggle { 
 
     padding: 4px 5px; 
 
     margin: 8px 15px 8px 0; 
 
    } 
 

 
    nav.shrink .navbar-nav li a span{ 
 
display: none 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 

 
    <nav class="navbar navbar-inverse navbar-fixed-top"> 
 
     <div class="container"> 
 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      </button> 
 
      <a class="navbar-brand" href="#">Brand</a> 
 
     </div> 
 
     <div class="collapse navbar-collapse"> 
 
      <ul class="nav navbar-nav pull-right"> 
 
      <li class="active home"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>Home</span></a></li> 
 
      <li class="active service"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>Services</span></a></li> 
 
      <li class="active about"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>About us</span></a></li> 
 
      </ul> 
 
     </div><!--/.nav-collapse --> 
 
     </div> 
 
    </nav> 
 

 
    <div class="container"> 
 
     <div class="text-center"> 
 
     <h1>Bootstrap starter template</h1> 
 
     <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p> 
 
     </div> 
 
     <div class="text-center"> 
 
     <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p> 
 
     </div> 
 
     
 
    </div>

+0

一つの選択肢は、あなたが結合することもでき、アンバインド:あなたがここに

)=速く、余分なパフォーマンス・オーバーヘッドなしで、簡単にあなたの目標を達成するCSSのアプローチを使用すると、作業スニペットですあなたのスクロールチェックの中にホバーしてください –

+0

@MuhammadOmerAslam私はそれを試みましたが、うまくいかなかった、私のためにそれをすることができますか? – jessica

答えて

1

あなたが望む行動を達成するために、あなたはもちろん、それはJSで行うことができ、JavaScriptを乱用する必要はありませんが、それははるかに簡単で、straightforwadがあります

nav.shrink .navbar-nav li:hover a span{ 
    display: block 
} 

これは、もちろん単なる一例であるが、私は確信しています:ちょうどちょうどあなたのコードにこのルールを追加するCSS

を使用するには

$(window).scroll(function() { 
 
     if ($(document).scrollTop() > 50) { 
 
     $('nav').addClass('shrink'); 
 
     } else { 
 
     $('nav').removeClass('shrink'); 
 
     } 
 
    });
body { 
 
     padding-top: 50px; 
 
     min-height:800px 
 
    } 
 

 
    nav a { 
 
     padding-top: 20px !important; 
 
     padding-bottom: 20px !important; 
 
     font-size: 18px; 
 
    } 
 

 
    nav .navbar-toggle { 
 
     margin: 13px 15px 13px 0; 
 
     -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; \t 
 
    } 
 

 
    .navbar-brand { 
 
     font-size: 30px; 
 
      -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; 
 
    } 
 

 
    nav.navbar.shrink { 
 
     min-height: 35px; 
 
     -moz-transition: all 0.3s; 
 
     -webkit-transition: all 0.3s; 
 
     transition: all 0.3s; \t 
 
    } 
 

 
    nav.shrink a { 
 
     padding-top: 10px !important; 
 
     padding-bottom: 10px !important; 
 
     font-size: 15px; 
 
    } 
 

 
    nav.shrink .navbar-brand { 
 
     font-size: 25px; 
 
    } 
 

 
    nav.shrink .navbar-toggle { 
 
     padding: 4px 5px; 
 
     margin: 8px 15px 8px 0; 
 
    } 
 

 
    nav.shrink .navbar-nav li a span{ 
 
display: none 
 
} 
 
nav.shrink .navbar-nav li:hover a span{ 
 
display: block 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 

 
    <nav class="navbar navbar-inverse navbar-fixed-top"> 
 
     <div class="container"> 
 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      <span class="icon-bar"></span> 
 
      </button> 
 
      <a class="navbar-brand" href="#">Brand</a> 
 
     </div> 
 
     <div class="collapse navbar-collapse"> 
 
      <ul class="nav navbar-nav pull-right"> 
 
      <li class="active home"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>Home</span></a></li> 
 
      <li class="active service"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>Services</span></a></li> 
 
      <li class="active about"><a href="#"><img src="https://cdn0.iconfinder.com/data/icons/iconshock_guys/512/andrew.png" height="50" width="50"><span>About us</span></a></li> 
 
      </ul> 
 
     </div><!--/.nav-collapse --> 
 
     </div> 
 
    </nav> 
 

 
    <div class="container"> 
 
     <div class="text-center"> 
 
     <h1>Bootstrap starter template</h1> 
 
     <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p> 
 
     </div> 
 
     <div class="text-center"> 
 
     <p class="lead">Use this document as a way to quickly start any new project.<br> All you get is this text and a mostly barebones HTML document.</p> 
 
     </div> 
 
     
 
    </div>

関連する問題