Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][html] Pełny adres podstron w bootstrap one page
Forum PHP.pl > Forum > Przedszkole
lukash82
Witam,

Korzystam z bootstrap 3.3.6. Korzystając z ich tutków robię stronę typu onepage. Mam jednak problem z pokazywaniem pełnych adresów w pasku przeglądarki. Strona ładnie śmiga w dół i górę, ale adres zawsze jest ten sam, tzn domeny głównej. Ma to sens bo nie ma przeładowania strony...

To co mam w bardzo okrojonej formie: http://tiny.pl/gr7jz

Chciałbym osiągnąć coś takiego, że klikając w menu zmienia się adres stron tak jak to ma miejsce w standardowych podstronach. Np. /page1 lub /#page2, etc.

Widziałem na kilku innych stronach że jest taka opcja ale nie pamiętam czy były one oparte na BS.

Czy brak tego jest spowodowany, że bootstrap tak już "poprostu ma", czy jest to jakoś blokowane w BS lub w jakiś inny sposób da się to pokazać.

Proszę o naprowadzenie, bo guglam guglam i póki co nic nie znalazłem. Pozdrawiam,Ł.
Arcioch
Musisz manipulować adresem przy scrollu smile.gif Pod takim hasłem znajdziesz wszystko: bootstrap scrollspy history push smile.gif
Ja używam takiego kodu
  1. $(window).on('activate.bs.scrollspy', function (e) {
  2. var url = $("a[href^='#']", e.target).attr("href");
  3. history.replaceState({}, "", url);
  4. });
lukash82
Witam ponownie,

Podane rozwiązanie działa wyśmienicie. Wielkie dzięki.

Jest jednak uno problemo jeśli chcę podać komuś adres konkretnej podstrony / sekcji. To jest strona one page więc chciałbym, aby ktoś nie musiał przewijać strony od samej góry. Wiem, że to taka trochę fanaberia...

Może na żywym przykładzie będzie mi to łatwiej opisać. Ten link powinien przenieść użytkownika bezpośrednio do sekcji "media": http://tiny.pl/gr573

Edge działa ok.
FF otwiera stronę w losowym miejscu, po drugim otwarciu linka jest już ok
Safari i Opera olewają temat i otwierają stronę od góry w home
Chrome czasem działa, a czasem nie.


Jak widać jest w tym więcej przypadku niż jakiejś powtarzalności więc już sam nie wiem od której strony ten temat ugryźć? Na innych stronach widzę, że takie coś działa, ale nie trafiłem jeszcze na stronę opartą na BS 3.6. Więc może bootstrap tak już ma i kropka...? Pozdrawiam, Ł.
Arcioch
Przy wejściu na stronie spraw czy istnieje hash i przewiń w js do odpowiedniej sekcji smile.gif
LowiczakPL
jeśli chodzi Ci o taki link jak przyjazne linki w PHP to możesz to zrobić za pomocą JS ale musisz napisać sobie router,

najlepiej użyć gotowego narzędzia czyli frameworka Angular i ngRoute https://docs.angularjs.org/api/ngRoute
Comandeer
@LowiczakPL Angular dla samego routera to wręcz książkowy przykład armaty na muchę – zwłaszcza na stronie onepage. Tutaj wystarczy umiejętnie operować scrollem i wszystko powinno działać → http://codepen.io/Comandeer/pen/bEPbqg

A jak już chce się bawić History API, to zostaje pjax, wciąż lżejszy od Angulara → https://github.com/defunkt/jquery-pjax
LowiczakPL
Angular jest malutki można powiedzieć że to MIKRO w porównaniu do Armaty czyli jQuery
Angular jest idealny do tworzenia stron singlepage i do takich stron został stworzony

W angularze uzyskasz w HTMLu w pasku przeglądarki adres w stylu,

http://singlepage.pl/oferta
http://singlepage.pl/oferta/produkt
http://singlepage.pl/oferta/produkt/motorynka/23

a o tym właśnie mowa w pierwszym poście, przynajmniej tak zrozumiałem, raczej nie chodzi o kotwice bo to działa z automatu bez kombinacji
Comandeer
Cytat
Angular jest malutki można powiedzieć że to MIKRO w porównaniu do Armaty czyli jQuery

A toś mnie zdziwił - faktycznie, jest mniejszy.

Co nie zmienia faktu, że pod względem konceptualnym wciąż jest to typowa armata na muchę. Angular jest bardzo skomplikowany w środku i nie opłaca się go poznawać tylko po to, by zrobić obsługę adresu. Zwłaszcza, że zrobienie tego w samym JS-ie nie jest super skomplikowane (history.pushState + listener dla popstate + ładna obsługa kliku dla linków).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.