2017-10-02 16 views
-1

여기에 StackOverflow가 새로 추가되었습니다. 수행해야 할 사항이 있으면 알려주십시오.Smooth-Scroll을 사용하여 URL에서 앵커 링크를 제거하십시오.

나는 내 웹 사이트 (https://github.com/cferdinandi/smooth-scroll)에서 cferdinanadi의 부드러운 스크롤 플러그인을 사용하고 있지만 링크를 클릭하면 내 URL에 앵커 링크를 제거하고 싶습니다. 그래서 링크를 클릭하면 URL이 (www.mysite.com/#anchor)가되지만 (www.mysite.com) 그대로 유지되기를 원합니다.

제공된 문서 맨 아래 https://github.com/cferdinandi/smooth-scroll), URL에서 해당 앵커 링크를 제거해야하는 도우미 함수를 발견했지만 작동하도록 코드를 붙여 넣어야하는 위치가 확실하지 않습니다.

아무도 도와 줄 수 있습니까? 제공된 코드는 다음과 같이 수정해야합니다.

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

갖고 계신 화면과 원하는 것을 스크린 샷으로 공유 할 수 있습니까? 또한 사이트 나 jsfiddler에 대한 링크를 제공 할 수 있다면 도움이 될 것입니다. – Tapas

+0

사이트가 아직 준비되지 않았습니다. 게시물에이 편집 내용을 추가하겠습니다 만, 링크를 클릭하면 URL이 (mysite.com/#section1)되지만 (www.mysite.com) 그대로 유지됩니다. –

+0

위의 'var toggle ...'add'event.preventDefault();' – ggdx

답변

0

알았어. 이 문제를 알아 내려고 다른 사람들을위한

, 그냥 추가 :

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

의 .js 파일의 맨 아래에.