• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

One Page Nav + navbar fixed - problem z poprawnym odstępem

Object Storage Arubacloud
+1 głos
601 wizyt
pytanie zadane 25 września 2015 w HTML i CSS przez testerius Pasjonat (23,960 p.)

No hej, słuchajcie mam pewien problem z nawigacją. Na stronie typu one page jest navbar, który po scrollowaniu dostaje klasę navbar-fixed (doczepiany jest do górnej krawędzi ekranu oraz zmniejsza się odrobinę padding).

Do płynnego scrollowania użyłem jQuery One Page Nav z którego zresztą kiedyś już korzystałem tworząc bardzo zbliżoną nawigację, co prawda wtedy używałem navbara z bootstrapa oraz dodatkowy skrypt - sticky.js, praktycznie taka sama funkcjonalność jaką chce uzyskać teraz ale bez sticky.

Niestety coś robię nie tak, ponieważ nie potrafię odpowiednio ustawić odstępu tak aby navbar nie zasłaniał tytułów, a dzieje się to wtedy gdy navbar nie ma jeszcze klasy navbar-fixed (tak mi się wydaje).

Demo codepen, a tutaj wersja full.

2 odpowiedzi

+2 głosów
odpowiedź 26 września 2015 przez Adam Wojtaś Obywatel (1,300 p.)
wybrane 26 września 2015 przez testerius
 
Najlepsza

Cześć,

w pliku .js w lini 45 dodaj ten kod

if (scrollY > navbarY) {
  $('.navbar').addClass('navbar-fixed');
  $(".welcome").css("margin-top", "50px");
} else {
  $('.navbar').removeClass('navbar-fixed');
  $(".welcome").css("margin-top", "0px");
}

Ponieważ w chwili kiedy navbar dostaje klase navbar-fixed cała strona przesuwa się o jego wysokość do góry, dlatego navbar "nie widzi" tych 50px paddingu dodanych do section. 

komentarz 26 września 2015 przez testerius Pasjonat (23,960 p.)

Niby działa jednak nadal występuje mały problem z odstępem a tutaj gdy już przejdziemy do innej sekcji i wrócimy. :P Tak czy siak będę się z tym męczył, może w końcu uda mi się to jakoś naprawić, dzięki za pomysł.

nowe demo

komentarz 26 września 2015 przez Adam Wojtaś Obywatel (1,300 p.)

50px wstawiłem jako przykład, wstaw 64px i będzie dobrze (tak jak powinno być).

Wtedy powinieneś ustawić +5px (bo tyle ma ten border-top dla sekcji) dla twojego "skrolowania".

Spakuj i wrzuć gdzieś twoją stronę, wtedy powiem ci jak to zrobić.

komentarz 26 września 2015 przez testerius Pasjonat (23,960 p.)

To 64px dla 

$(".welcome").css("margin-top", "64px");

to metodą prób i błędów obliczyłeś, bo faktycznie po zmianie z 50 scroll wydaje się działać prawidłowo. Nie wiem co miałeś na myśli z tymi dodatkowymi 5px, fajnie jakbyś mógł bardziej rozwinąć o co ci chodziło.

Jak chcesz to możesz pobrać http://www.speedyshare.com/75Pak/testerius-nav.zip (aby np. testować lokalnie).

+1 głos
odpowiedź 26 września 2015 przez Czort Nałogowiec (32,500 p.)
.section:before{
  content:"";
  display:block;
  height:50px;
}

Po dodaniu tego do css niby nie zasłania ale z kolei pojawia się większy odstęp między h2 i borderem. W sumie nie wiem co lepszewink

Ciekawy problem, jakbyś znalazł rozwiązanie to podziel się nim.

komentarz 26 września 2015 przez testerius Pasjonat (23,960 p.)

Border zaznaczyłem po to aby wiedzieć gdzie jest początek sekcji i właśnie w tym miejscu powinien stykać się navbar, tak jak tutaj. O coś takiego mi chodziło. :P

Podobne pytania

0 głosów
1 odpowiedź 387 wizyt
pytanie zadane 12 października 2015 w Offtop przez pjj Gaduła (4,330 p.)
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 28 maja 2018 w HTML i CSS przez niezalogowany
0 głosów
1 odpowiedź 858 wizyt
pytanie zadane 15 lipca 2019 w PHP przez niezalogowany

92,641 zapytań

141,516 odpowiedzi

319,907 komentarzy

62,018 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...