2016-09-09 5 views
0

전체 URL을 사용하여 부드러운 스크롤을 사용하는 방법에 궁금한 점이 있습니다. id를 포함한 jQuery 부드러운 스크롤 전체 URL

<nav class="primary-nav"> 
    <ul> 
    <li><a href="http://domainname.com/">Home</a></li> 
    <li><a href="#about">About</a></li> 
    <li><a href="#services">Services</a></li> 
    <li><a href="http://domainname.com/contact">Contact</a></li> 
    </ul> 
</nav> 

<nav class="primary-nav"> 
    <ul> 
    <li><a href="http://domainname.com/">Home</a></li> 
    <li><a href="http://domainname.com/#about">About</a></li> 
    <li><a href="http://domainname.com/#services">Services</a></li> 
    <li><a href="http://domainname.com/contact">Contact</a></li> 
    </ul> 
</nav> 

을 사용하려는 탐색하고이 페이지의 섹션으로 스크롤하는 데 사용되는 jQuery 코드이다.

function smoothScroll(duration) { 
$('a[href^="#"]').on('click', function (event) { 
    var target = $($(this).attr('href')); 
    if (target.length) { 
    event.preventDefault(); 
    $('html, body').animate({ 
     scrollTop: target.offset().top 
    }, duration); 
    } 
    }); 
} 

어떤 도움을 주셔서 감사합니다.

+0

당신은 #이 존재하고 존재하는 페이지로 이동하지 않는 페이지에서 # 버튼을 클릭 할 수 있는지 여부를 묻는, 그 #로 이동? – Tom

+0

도메인이 있으면 해당 페이지가 새로 고침되고 새 페이지로 이동합니다. 새 페이지로 이동하여 스크롤하려는 경우 페이지로드 이벤트를 찾아 URL에서 '#'을 찾아야합니다. –

+0

유사 항목 : - [https://stackoverflow.com/questions/7717527/smooth-scrolling-when-clicking-an-anchor-link](https://stackoverflow.com/questions/7717527/smooth-scrolling- 클릭 할 때 앵커 링크) –

답변

0

나는 당신이 동일한 페이지에 머물고 싶어한다는 것을 이해한다. 다만, 내부 링크가 절대적으로 필요한 어떤 이유로 든.

절대 URL과 내부 연결을 달성하기 위해 당신이 그런 식으로 변경할 수 :

자바 스크립트 :

var duration = 1000; 
var domainname = 'http://domainname.com/'; 

$('a[href^="'+domainname+'#"]').on('click', function (event) { 
    var target = $(this).attr('href'); 
    if (target.length) { 
    event.preventDefault(); 

    target = $(target.replace(domainname, '')); 

    $('html, body').animate({ 
     scrollTop: target.offset().top 
    }, duration); 
    } 
    }); 

설명 : 그것은 '# 정보'하지만 같은 URL을 활성화하도록 사용자 선택을 변경 'http://domainname.com/#about'. 그런 다음 도메인 이름 부분을 자르고 '#about'과 같은 내부 링크를 다시 갖게됩니다.

바이올린 : https://jsfiddle.net/u5dL9rt3/

+0

감사합니다. Michael, 내가 뭘 찾고 있었는지. – Ollie

+0

내가 도울 수있어서 기쁩니다. 답변을 수락 된 것으로 표시해 주시겠습니까? –

+0

여기를 참조하십시오 upvote/대답을 수락하십시오 : https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –