[jquery] 페이지로드시 ID로 스크롤 애니메이션
페이지로드시 특정 ID로 스크롤을 애니메이션화합니다. 나는 많은 연구를 수행했고 이것을 발견했습니다.
$("html, body").animate({ scrollTop: $('#title1').height() }, 1000);
그러나 이것은 ID에서 시작하여 페이지 상단으로 애니메이션되는 것 같습니다.
HTML (페이지 중간에 있음)은 다음과 같습니다.
<h2 id="title1">Title here</h2>
답변
요소의 높이 만 스크롤합니다. offset () 은 문서를 기준으로 한 요소의 좌표를 반환하고 top
param은 y 축을 따라 요소의 거리를 픽셀 단위로 제공합니다.
$("html, body").animate({ scrollTop: $('#title1').offset().top }, 1000);
또한 지연을 추가 할 수도 있습니다.
$("html, body").delay(2000).animate({scrollTop: $('#title1').offset().top }, 2000);
답변
scrollIntoView () 함수를 사용하는 순수 자바 스크립트 솔루션 :
document.getElementById('title1').scrollIntoView({block: 'start', behavior: 'smooth'});
<h2 id="title1">Some title</h2>
PS ‘smooth’매개 변수는 이제 주석에 언급 된 julien_c와 같이 Chrome 61에서 작동합니다 .
답변
$(jQuery.browser.webkit ? "body": "html").animate({ scrollTop: $('#title1').offset().top }, 1000);
답변
이를위한 jquery 플러그인이 있습니다. 문서를 특정 요소로 스크롤하여 뷰포트의 중앙에 완벽하게 배치됩니다. 또한 스크롤 효과가 매우 부드럽게 보이도록 애니메이션 이징을 지원합니다. 이 링크 확인 .
귀하의 경우 코드는
$("#title1").animatedScroll({easing: "easeOutExpo"});
답변
다음 코드로 시도하십시오. 페이지 스크롤 클래스 이름으로 요소를 만들고 href
해당 링크의 ID 이름을 유지 합니다.
$('a.page-scroll').bind('click', function(event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollTop: ($($anchor.attr('href')).offset().top - 50)
}, 1250, 'easeInOutExpo');
event.preventDefault();
});
답변
간단한 Scroll의 경우 다음 스타일을 사용하십시오.
높이 : 200px; 오버플로 : 스크롤;
스크롤을 표시하려는 div 또는 섹션이 스타일 클래스를 사용하십시오.