2016-05-13 7 views
0

Ich bin mit jQuery + jQuery UI und haben zur Zeit den folgenden Code: -jQuery - Beste Methode für die ‚Scroll Anchor‘ für gleiche Seite und neue Seite

$(function() { 
    $('a[href*="#"]:not([href="#"])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 

Ich erhalte den Scroll-Effekt, wenn die Schriftrolle ist auf der gleichen Seite, aber wenn ich eine neue Seite lade, blättert es nicht zu diesem Abschnitt, zB von/home/to/about/# section3

Wie kann ich dies für beide auf der gleichen Seite Anker zu arbeiten und zu verankern scrollen, wenn eine neue Seite geladen?

+0

Haben Sie versucht, die glatte Scroll Initiieren von '$ (Fenster) .load mit()'? – ntgCleaner

+0

Warum der Downvote? wirklich manchmal verstehe nicht – nsilva

+0

Es ist kein guter Weg, um es auf der neuen Seite blättern zu müssen. Sie würde warten müssen, bis die Seite fertig geladen ist, so dass Sie genau ausrichten können, wo Sie es wollen blättern, und dann durch den Standardsprung des Browsers muss Ziel bereits geschehen ist. –

Antwort

1

Ich kann keinen Kommentar hinterlassen (wegen des Rufes).

Haben Sie diese Lösung versuchen: Smooth scroll to anchor after loading new page

ich es an einem Projekt verwendet und es funktionierte gut. Schauen Sie einfach in den Kommentaren der Antwort;)

+0

Yep das funktioniert, musste nur die Links ändern von '/ about/# section' zu'/über # section' (entfernen Sie die zusätzlichen Schrägstrich) – nsilva

Verwandte Themen