2013-12-18 22 views
22

Aşağıya indiğinizde ve üstbilginin görünümü dışında kaldığında ekranın üst kısmında bir gezinme yapmak için Bootstrap'in ekleme işlevini kullanarak bir JSFiddle oluşturdum.Bootstrap Affix Nav Nedenler Yukarı Git Yukarı Gitmek İçin

Yapmakta olduğum sorun, saf HTML kullanırken, nav'ın altındaki metnin atlaması ve navun arkasına çok erken bir zamanda gizlenmesidir.

here sorunlu koduna bakın.

<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 aşağıdaki gibidir:

İşte kullandığım kod

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

Ben çok benzer bir sorun here buldum ama nedense bu örnekte olduğu gibi kod kullanırken Benim için çalışmıyor.

şöyle hiledir yaptılar CSS ekstra parça:

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

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

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

Ben de böyle istenen etkiyi yaratmak için aşağıdaki kodu kullanan this one here olarak JavaScript çözümlerinin farkındayım

Sadece CSS dolgu üst düzeltme kullanarak önceki düzeltmeyi uygularken, yalnızca benim HTML sürümümün neden hareket etmediğini anlamaya çalışıyorum.

Yardımlarınız için şimdiden teşekkür ederiz.

+0

jsFiddle bağlantınız çalışmıyor. Bunu mu demek istediniz: http://jsfiddle.net/Pein/yYE62/2/? –

+0

Evet sürüm 2 çalışır ancak bazı nedenlerle sürüm 3 bağlantım bir hata sayfasına gider. Peki bu temelde aynı kod. Bunun için üzgünüm. Şimdi düzenledim. – Pein

cevap

43

Bu iş gibi görünüyor: jsFiddle Güncelleme

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

: Eklerin eklentisi .affix sınıfla elemanı yapar ne oluyor http://jsfiddle.net/yYE62/5/

belgede bir sabit konuma sahiptirler. Bu, yapıştırılmış elemanı akıştan (ya da tercih ederseniz düzen) kaldırır ve konteynerin çökmesine neden olur. Bu olduğunda, aşağıdaki içerik yapıştırılmış elemanın işgal ettiği alanı doldurmak için yukarı kaydırılır.

Yukarıdaki kuralı ekleyerek, kapsayıcının içeriğe sahip olup olmadığına bakılmaksızın minimum bir yüksekliğe sahip olmasını söylersiniz. 50px olmak zorunda değildir; Bu, varsayılan .navbar yüksekliğidir, dolayısıyla ihtiyaçlarınızı karşılayacak şekilde ayarlayın. 'un tüm.nav-wrapper s en düşük bir yüksekliğe sahip olmasını istemiyorsanız, bir id atayın ve bunu kullanın.

+0

Teşekkürler Tieson. Sorunun bu olduğunu ve kodun tam olarak başka bir JSFiddle sürümünde kullanıldığını düşündüm, ancak yine de aynı sıçrama etkisi var, bu yüzden beni şaşırtıyor.120px dolgu ile bile, h2 içeriğinin çok yakında navbarın arkasına sıçradığını göreceksiniz. – Pein

+0

@Pein Güncelleme yanıtı; Yeni jsFiddle işe yarıyor gibi görünüyor, ama sadece Firefox'ta çalıştım, bu yüzden iktidarı uyarın. –

+0

Ne kadar zarif bir çözüm. Çözümün yeniden işlenmesi ve neler olup bittiğini açıklamak için çok teşekkür ederim. Gerçekten onu takdir ederim! Fantastik iş :) – Pein

-1

Kusursuz çalışmak için ekstra bir sarıcıya ihtiyacınız var. Ona sahip olduğunuzla aynı bir minimum yükseklik verin :)

+0

Ekstra bir sarıcı yoksa ne yapmalıyım? Joomla şablonunun bir parçası ve ben php'yi düzenlemek istemiyorum. Herkes işaretlemeyi görebiliyorsa – user3108698

+0

iyi. keman yapabilir misin –

+2

çok belirsiz bir cevap. – ajbraus