2013-12-18 6 views
22

Bootstrapの接尾辞機能を使用してJSFiddleを作成し、スクロールしてヘッダーを外に移動させたときに画面上部にナビをとどめました。Bootstrap Affix Navの下にジャンプするには

私が抱えている問題は、純粋なHTMLを使用すると、navの下のテキストが上にジャンプし、navの後ろに隠れてしまうことです。

問題のコードhereを確認してください。ここで

は私が使用したコードです:

<div class="container"> 
<div class="row"> 
    <div class="span12"> 
     <div class="well"> 
      <h1>Banner</h1> 
     </div> 
    </div> 
</div> 
</div> 
<div class="nav-wrapper"> 
<div class="nav navbar affix" data-spy="affix" data-offset-top="120"> 
    <div class="navbar-inner"> 
     <div class="container"> 
      <div class="span12"> 
       <a class="brand" href="#">My Brand</a> 
       <span class="navbar-text"> 
        This is a navbar. 
       </span> 
      </div>  
     </div> 
    </div> 
</div> 
</div> 
<div class="container"> 
<div class="span3"> 
    <h2>some lorem ipsum for scrolling:</h2> 
    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. 
</div> 
</div> 

次のようにCSSは次のとおりです。

.affix { 
    position: fixed; 
    top: 0; 
    width: 100% 
} 

私は非常に同様の問題hereを見つけましたが、何らかの理由で、その例のようなコードを使用した場合それは私にとってはうまくいかない。

次のようにトリックをしたCSSの余分な部分は次のとおりです。

.affix + .container { 
    padding-top:50px 
} 

私も所望の効果を作成するために、次のコードを使用して、このようなthis one hereなどのJavaScriptソリューションの承知している:

$(function() { 
    $('#nav-wrapper').height($("#nav").height()); 

    $('#nav').affix({ 
     offset: { top: $('#nav').offset().top } 
    }); 
}); 

CSSパディングトップ修正を使用して以前の修正プログラムを実装するときに、特定のHTML専用バージョンが動作しない理由を理解しようとしています。

ありがとうございました。

+0

あなたのjsFiddleリンクは動作しません。 http://jsfiddle.net/Pein/yYE62/2/を意味しましたか? –

+0

はいバージョン2は動作しますが、何らかの理由でバージョン3のリンクがエラーページに移動します。基本的には同じコードです。申し訳ありません。私は今それを編集しました。 – Pein

答えて

43

これは動作するようです:jsFiddle更新

.nav-wrapper 
{ 
    min-height:50px; 
} 

接辞プラグインは.affixクラスを持つ要素を作ることは何が起こっているhttp://jsfiddle.net/yYE62/5/

は、ドキュメント内の固定ポジションを持っています。これにより、フロー(またはレイアウト)から添付された要素が削除され、コンテナが折りたたまれます。それが起こると、下のコンテンツは、占有するのに使用されたスペースを埋めるようにスライドします。

上記のルールを追加することで、コンテントの有無にかかわらず、コンテナーに最小の高さを維持するよう指示します。それは50pxである必要はありません。デフォルトの高さは.navbarなので、ニーズに合わせて調整してください。 すべて.nav-wrapperに最小高さを設定しない場合は、idを割り当てて、代わりに使用してください。

+0

ありがとうTieson。私はそれが問題だと思って、別のJSFiddleバージョンのコードラインを使っていましたが、同じジャンプ効果があり、それが私を混乱させています。120pxのパディングがあっても、h2のコンテンツがあまりにも早くnavbarの後ろを飛び越えていることに気付くでしょう。 – Pein

+0

@Pein更新された回答。新しいjsFiddleはうまくいくようですが、私はFirefoxでそれを行使しましたので、emptorに注意してください。 –

+0

どのような洗練されたソリューション。解決策を取り直し、何が起きているのか、理由を説明してくれてありがとう。ほんとうにありがとう!素晴らしい仕事:) – Pein

-1

完全に機能するには、追加のラッパーが必要です。あなたに貼り付けているものとまったく同じ最小の高さを与えてください:)

+0

私は余分なラッパーを持っていない場合はどうすればよいですか? Joomlaのテンプレートの一部ですが、私はPHPを編集したくありません。 – user3108698

+0

誰もがマークアップを見ることができれば良いです。あなたはいじめることができますか? –

+2

非常に曖昧な答えです。 – ajbraus

関連する問題