![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 25.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chce stworzyć stronę w formacje "one page website". Mam taki o to kod: <html> <head> </head> <body> <div id="header"> <div id="nav"> <a href="#strona1">1</a> <a href="#strona2">2</a> <a href="#strona3">3</a> </div> </div> <div id="page-wrap"> <div id="strona1"> <a name="1"></a> <div class="page-padding"></div> <p></p> </div> <!--END strona1--> <div id="strona2"> <a name="2"></a> <div class="page-padding"></div> <p>This is what you would see on the Portfolio page.</p> </div> <!--END strona2--> <div id="strona3"> <a name="3"></a> <div class="page-padding"></div> <p></p> </div> <!--END strona3--> </div> <!--END page-wrap--> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script>$(document).ready(function() { function filterPath(string) { return string .replace(/^\//,'') .replace(/(index|default).[a-zA-Z]{3,4}$/,'') .replace(/\/$/,''); } $('a[href*=#]').each(function() { if ( filterPath(location.pathname) == filterPath(this.pathname) && location.hostname == this.hostname && this.hash.replace(/#/,'') ) { var $targetId = $(this.hash), $targetAnchor = $('[name=' + this.hash.slice(1) +']'); var $target = $targetId.length ? $targetId : $targetAnchor.length ? $targetAnchor : false; if ($target) { var targetOffset = $target.offset().top; $(this).click(function() { $('html, body').animate({scrollTop: targetOffset}, 1500); return false; }); } } }); });</script> </body> </html> i działa to w ten sposób, że jak wciskam na poszczególne pozycje menu to strona się przewija, ale nie zmienia się adres strony, który bez różnicy, czy wybiorę z menu opcje 1 czy 2 zawsze jest ten sam, a co za tym idzie nie będzie jak podlinkować poszczególnych pozycji menu. Znalazłem, że można ten problem rozwiązać za pomocą funkcji location.hash. Kiedy wpisuje noAfter:function() {location.hash=id} to i owszem adres strony się zmienia czyli wyskakuje mi #1, #2 czy #3, ale nie działa już przewijanie. Niestety nie znam zbyt dobrze js, szukam rozwiązania już jakiś czas i nic mi nie działa poprawnie. Mógłby mi ktoś podpowiedzieć co mógłbym zrobić, żeby przewijanie działało razem ze zmianą adresu strony? Z góry dziękuję za pomoc. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 250 Pomógł: 11 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
ja to robię tak. Działa super
Prosto, łatwo i przyjemnie ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 25.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie
![]() Działa, ale.... przy powrocie z samego dołu strony za pomocą suwaka na samą górę już adresy nie przeskakują. wracam na samą górę a w adresie mam nadal #3. tak samo jest jak używam suwaka do przejścia na sam dół. funkcja działa tylko w przypadku wybierania pozycji z menu. Ten post edytował interu58 1.09.2014, 12:51:07 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 250 Pomógł: 11 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chcesz żeby przesuwając suwakiem/scrollem zmieniał ci sie adres i aktywne menu to musisz określić która pozycja suwaka należy poszczególnych cześci strony.
Określasz położenie/początek podstrony za pomocą i określasz koniec . Jesli suwak jest na tej wysokości to podwietlasz konkretny link w menu i zmieniasz location.hash |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 25.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
nie działa mi to niestety. próbowałem to przerobić, ale chyba za mało znam js.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 250 Pomógł: 11 Dołączył: 20.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś zrobiłem to tak. Pewnie można to jakoś udoskonalić, ale działa świetnie
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 25.10.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie:) wypróbuje.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:58 |