6

Czy istnieje sposób na utrzymywanie paska nawigacyjnego Bootstrap jako navbar-fixed-bottom, gdy jest on na urządzeniu mobilnym, a na pulpicie navbar-static-top? Zastanawiałem się nad utworzeniem dwóch navbarów i ukrywaniem jednego i pokazaniem drugiego, choć nie jestem pewien, czy to w porządku; na pokrewną uwagę, czy można używać dwóch elementów nav z tą samą rolą?Bootstrap - fixed-bottom na pulpicie i navbar-static-top na urządzeniach mobilnych?

+1

Jest to możliwe, tak, musisz użyć niektórych mediów na ten temat, ale jest to możliwe. Twoja alternatywna uwaga jest taka, że ​​możesz mieć wiele elementów nav, a obsługiwanych przez w3.org dla posiadania wielu ról 'navigation' na tej samej stronie. http://www.w3.org/WAI/GL/wiki/Using_HTML5_nav_element#Example%3aThe_.3Cnav.3E_element – Dorvalla

+0

@Dorvalla Ah, dziękuję. Więc nie ma żadnych metod osiągnięcia tego już wbudowanego w Bootstrap? – yaharga

+1

Nie mogę tego potwierdzić, ale dodawanie/usuwanie klas przez javascript jest rozwiązaniem, gdy sprawdza szerokość ekranu. – Dorvalla

Odpowiedz

3

Można to również zrobić, dodając i usuwając klasę paska nawigacyjnego za pomocą jQuery Javy według szerokości ekranu.

if ($(window).width() > 330) { 
$('.navbar').addClass('navbar-static-top'); 
} 
else 
{ 
$('.navbar').addClass('navbar-fixed-bottom'); 
} 

Będzie działać na pewno

+1

To działa tylko przy ładowaniu strony, zostanie przerwane, jeśli JS jest wyłączone i może spowodować migotanie nawigatora z pozycji początkowej podczas ładowania strony. Celem bootstrap jest reagowanie. Zapytania o media CSS będą lepsze. – dotcomly

1

Można użyć zapytań o media:

<nav class="navbar navbar-default navbar-static-top" role="navigation"> 

@media (max-width:767px) { .navbar-static-top { position: fixed; bottom: 0; left: 0; width: 100%; margin: 0; } } 
2

Ten kod działa dla mnie, i powinny być łatwe do zrozumienia.

var win = $(this);  // browser window 
var nav = $('.navbar'); // your navigation bar 

function switchNavbar() { 
    if (win.width() < 768) { // on mobile 
     nav.removeClass('navbar-static-top'); 
     nav.addClass('navbar-fixed-bottom'); 
    } else { // on desktop 
     nav.removeClass('navbar-fixed-bottom'); 
     nav.addClass('navbar-static-top'); 
    } 
} 

// On first load 
$(function() { 
    switchNavbar(); 
}); 

// When browser resized 
$(window).on('resize', function(){ 
    switchNavbar(); 
}); 
Powiązane problemy