2013-02-06 6 views
7

Ten problem może być wyświetlany we wszystkich (znanych mi) wersjach Bootstrap na Twitterze. Mam więc navbar, a gdy ekran jest mniejszy, staje się on składaną tacą. To zachowanie można zobaczyć na stronie demo programu startowego. Mam również podmenu, które pojawiają się zwinięte na początkowym rozszerzeniu paska nawigacyjnego. Problem polega na tym, że po pierwszym zwinięciu, zwijany dostaje ustaloną wysokość. Jeśli zamkniesz i rozwiniesz ponownie, zwinięty obiekt otrzyma znacznik height:auto; Tak więc po kliknięciu elementu podmenu rozwijany zostanie rozwinięty, ale zostanie przepełniony z powodu jawnego ustawienia wysokości.Podpowierzchniowe menu zwinięte podskokiem ma stałą wysokość podczas pierwszego zwinięcia.

Moja próba roztwór dodając:

$(function() { 
    $('.nav-collapse').on({ 
    shown: function() { 
     $(this).css('height', 'auto'); 
    }, 

    hidden: function() { 
     $(this).css('height', '0px'); 
    } 
    }); 
}); 

To nie wydaje się wpływać na to w ogóle, mam usunięte ten kod i nadal ma ten sam efekt. Jeśli JS Fiddle pomogłoby, z chęcią je udostępnię, ale możesz to wszystko zobaczyć na stronie demonstracyjnej Bootstrap.

Z góry dziękuję, Charles.

+0

należy podać link do swojej strony demo lub JS Fiddle . Trudno zrozumieć twój problem tutaj. Używamy bootstrapu szeroko i nie mieliśmy żadnych problemów z przepełnieniami. – Mauricio

+0

@Mauricio http://jsfiddle.net/nczJF/ - Kliknij zasobnik, a następnie spróbuj menu rozwijanego, a następnie zamknij zasobnik i spróbuj ponownie, a następnie powinien rozwinąć się zgodnie z oczekiwaniami. Dzięki! –

Odpowiedz

21

Trochę mi to przeszkadzało, a po kilku poszukiwaniach odkryłem, że problem można rozwiązać, dodając klasę .collapse do elementu .nav-collapse.

Working demo (jsfiddle)

jeden z tych czasach, gdy po prostu powiedzieć Meh .. powinien Śledzę doc pismo (patrz Responsive navbar):

<div class="nav-collapse collapse"> 
    <!-- .nav, .navbar-search, .navbar-form, etc --> 
</div> 

Dla potomności:

Wykryto dzięki temu wydaniu: https://github.com/twitter/bootstrap/issues/3788

Nie jestem pewien, czy to naprawdę jest związany, ale mój problem debugowanie pokazał na pierwszej wysokości przejściowej resetowanie anyway (source):

$.support.transition && this.$element[dimension](this.$element[0][scroll]) 
+0

Awesome, było właściwym rozwiązaniem! Dziękuję Ci! –

+0

Dzięki) !!!!!!!!! – Kison

0

Funkcja Bootstrap ustawia wysokość stylu elementu na 280px po zainicjowaniu elementu zwinięcia.

I dodaje ten wiersz w moim JQuery gotowy function() zaraz po moje wezwanie do .collapse()

$("#avail_detail").collapse(); 
$("#avail_detail").css("height","auto"); 

A teraz rzeczy zachowują się jak oczekuję.

+0

Dzięki za twoje wysiłki. Dodałem ten kod, ale collapse jest konfigurowany przez dyskretne dane-toggle = "collapse" i data-target = ". Nav-collapse" i wydaje się, że to nie naprawia. Masz jednak całkowitą rację, czy masz szansę zmienić JsFiddle? http://jsfiddle.net/nczJF/ –

+0

Ogólnie rzecz biorąc, mam więcej szczęścia w Bootstrapie, który jest bardziej bezpośredni i używa JavaScript bezpośrednio, niż przy użyciu metod znaczników. To już drugi raz, kiedy opróżniłem błąd w Bootstrapie poprzez bezpośredni JavaScript.Powiedział, że nadal byłbym zainteresowany rozwiązaniem znaczników dla problemu. – JeffK

Powiązane problemy