2017-10-02 1 views
-1

Neu zu StackOverflow hier, so lassen Sie mich bitte wissen, wenn es etwas gibt, was ich tun muss.Entfernen Sie Anker-Links von der URL mit Smooth-Scroll

Ich benutze Cferdinanadi Smooth-Scroll-Plugin auf meiner Website (https://github.com/cferdinandi/smooth-scroll), aber ich möchte die Anker Links in meiner URL loswerden, sobald ich auf einen Link klicke. Wenn ich jetzt auf einen Link klicke, wird meine URL (www.mysite.com/#anchor), aber ich möchte, dass sie bleibt (www.mysite.com)

Ganz unten in der bereitgestellten Dokumentation (https://github.com/cferdinandi/smooth-scroll), habe ich die Hilfsfunktion gefunden, die diese Ankerlinks von der URL entfernen soll, aber ich bin mir nicht sicher, wo ich den Code einfügen soll, damit er funktioniert.

Kann mir jemand helfen? Hier ist der Code zur Verfügung gestellt, die es beheben sollte:

var scroll = new SmoothScroll(); 

var smoothScrollWithoutHash = function (selector, settings) { 
    /** 
    * If smooth scroll element clicked, animate scroll 
    */ 
    var clickHandler = function (event) { 
     var toggle = event.target.closest(selector); 
     console.log(toggle); 
     if (!toggle || toggle.tagName.toLowerCase() !== 'a') return; 
     console.log(toggle.hash); 
     var anchor = document.querySelector(toggle.hash); 
     if (!anchor) return; 

     event.preventDefault(); // Prevent default click event 
     scroll.animateScroll(anchor, toggle, settings || {}); // Animate scroll 
    }; 

    window.addEventListener('click', clickHandler, false); 
}; 

// Run our function 
smoothScrollWithoutHash('a[href*="#"]'); 
+0

Können Sie Screenshot von dem, was Sie haben und was Sie wollen, teilen? Es wäre auch hilfreich, wenn Sie einen Link zu Ihrer Website oder jsfiddler bereitstellen könnten. – Tapas

+0

Die Seite ist noch nicht verfügbar. Ich füge diese Änderung auch in den Beitrag ein, aber im Moment wird meine URL (mysite.com/#section1), wenn ich auf einen Link klicke, aber ich möchte, dass er bleibt (www.mysite.com) –

+0

Über 'var toggle ... 'add' event.preventDefault(); ' – ggdx

Antwort

0

Okay, ich endete nur mit einem Workaround.

Für jemand anderes versucht, dies herauszufinden, fügen Sie einfach:

$(window).on('hashchange', function(e){ 
    history.replaceState ("", document.title, e.originalEvent.oldURL); 
}); 

an der Unterseite der JS-Datei.

Verwandte Themen