jQuery를 사용하여 앵커 링크 클릭 시 부드럽게 스크롤되도록 하기

앵커(anchor) 링크로 페이지 내에서 스크롤하도록 링크를 만든 경우, 링크를 클릭할 때 부드럽게 스크롤되도록 하려면 다음과 같은 jQuery 스크립트를 사용할 수 있습니다.

$('a').click(function(){
$('html, body').animate({
scrollTop: $( $.attr(this, 'href') ).offset().top
}, 500);
return false;
});
// Source: stackoverflow

특정 요소(element)에 국한시키려면 $('a') 부분에 해당 요소를 추가하면 됩니다. 위의 코드를 그대로 사용했을 때 일부 js 코드와 충돌이 일어나는지 일부 링크가 제대로 작동하지 않아서 요소를 특정해서 사용해보니 잘 작동하네요.

위 코드가 잘 안 되면 다음과 같은 jQuery 스크립트도 가능합니다.

$('a[href*=#]').on('click', function(event){
event.preventDefault();
$('html,body').animate({scrollTop:$(this.hash).offset().top}, 500);
});

참고로 워드프레스에서 jQuery를 사용하려면 enqueue를 통해 js 파일을 후크시켜야 하고, $ 대신 jQuery를 사용해야 합니다.

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

2개 댓글

  1. 워드프레스를 하면서 어려웠던점을 여기서 많이 배워가네요! 좋은 내용 너무 잘 읽고있습니다! 감사합니다 :)

댓글 남기기

* 이메일 정보는 공개되지 않습니다.