페이지 맨 아래로 jQuery 스크롤


196

내 페이지로드가 완료된 후 jQUery가 페이지의 맨 아래로 멋지게 스크롤되어 스냅 / 줌이 아닌 빠르게 애니메이션됩니다.

나는 그런 플러그인이 필요 ScrollTo합니까? 아니면 jQuery에 내장되어 있습니까?

답변:


416

다음 scrollTop과 같이 플러그인없이 속성 을 애니메이션하여 페이지를 아래로 스크롤하도록 애니메이션을 만들 수 있습니다 .

$(window).load(function() {
  $("html, body").animate({ scrollTop: $(document).height() }, 1000);
});

대신 window.onload(이미지를로드 할 때 ... 높이를 차지하는) 사용을 참고하십시오 document.ready.

기술적으로 정확하려면 창의 높이를 빼야하지만 위의 작동합니다.

$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });

특정 ID로 스크롤하려면 .scrollTop()다음과 같이를 사용하십시오.

$("html, body").animate({ scrollTop: $("#myID").scrollTop() }, 1000);

2
또 다른 문제는 그것이 완료된 것처럼 보이고, 사용자가 잠기
려고 시도

1
@AnApprentice-빠른 속도로 발생하기 때문에 (기본적으로 400ms),이 문제를 완화하기 위해 빠른 스크롤을 권장합니다.
Nick Craver

3
잠금은 거리가 떨어져 있기 때문입니다. 보이는 애니메이션을지나 애니메이션입니다.
Josiah Ruddell

27
@NickCraver-최신 버전의 jQuery .scrollTop ()을 사용하면 특정 ID로 스크롤하지 못하는 것 같습니다. .offset (). top 사용 : $("html, body").animate({ scrollTop: $("#myID").offset().top }, 1000);
Paolo Gibellini

3
이 답변은 편집해야합니다. 재산 $(document).height()가치가 너무 크면 scrollTop여유를 통해이를 알 수 있습니다. 나는 $(document).height() - window.innerHeight괜찮을 것 같아요 .
silvenon

22

이 같은:

var $target = $('html,body'); 
$target.animate({scrollTop: $target.height()}, 1000);

대상을 .write-comment로 업데이트하려고 시도했지만 작동하지 않았습니다. 아마도 페이지에 주입 되었기 때문일까요?
AnApprentice

16
$('html,body').animate({ scrollTop: 9999 }, 'slow');

이것만으로도 9999 페이지 높이 ... 큰 범위이므로 바닥에 닿을 수 있습니다.


1
경우에 따라서는 드물더라도 그보다 긴 페이지, 특히 무제한 컨텐츠를 동적으로로드하는 페이지가있을 수 있으므로 이는 완벽하지 않습니다. 스크롤이 중간에 멈 춥니 다.
Akhil Gupta

13

당신은 이것을 시도 할 수 있습니다

var scroll=$('#scroll');
scroll.animate({scrollTop: scroll.prop("scrollHeight")});

10
$("div").scrollTop(1000);

나를 위해 작동합니다. 맨 아래로 스크롤합니다.


13
페이지가 1000px보다 길면 아닙니다.
Volomike

4

이전 답변에서 언급 한 스크립트는 다음과 같습니다.

$("body, html").animate({
    scrollTop: $(document).height()
}, 400)

작동하지 않습니다크롬 과에 불안해 할 것이다 사파리 의 경우에 html 태그 CSS는overflow: auto;속성이 설정. 알아내는 데 거의 한 시간이 걸렸습니다.


3

'document.body.clientHeight'를 사용하면 본문 요소의 높이를 볼 수 있습니다

$('html, body').animate({
    scrollTop: $("#particularDivision").offset().top - document.body.clientHeight + $("#particularDivision").height()
}, 1000);

이것은 ID 'particularDivision'에서 스크롤됩니다.


1

jQuery 3의 경우 변경하십시오

$ (window) .load (function () {$ ( "html, body"). animate ({scrollTop : $ (document) .height ()}, 1000);})

에:

$ (window) .on ( "load", 함수 (e) {$ ( "html, body"). animate ({scrollTop : $ (document) .height ()}, 1000);})


1
function scrollToBottom() {
     $("#mContainer").animate({ scrollTop: $("#mContainer")[0].scrollHeight }, 1000);
}

이것은 나로부터의 해결책 일이며 당신은 발견합니다.


0

js

var el = document.getElementById("el");
el.scrollTop = el.scrollHeight - el.scrollTop;

이 코드는 문제를 해결하는 데 도움이 될 수 있지만 질문에 그리고 / 또는 어떻게 대답 하는지 는 설명하지 않습니다 . 이러한 추가 맥락을 제공하면 장기 교육 가치가 크게 향상 될 것입니다. 제발 편집 제한 및 가정이 적용되는 것을 포함하여, 설명을 추가 답변을.
Toby Speight

0
$('#pagedwn').bind("click", function () {
        $('html, body').animate({ scrollTop:3031 },"fast");
        return false;
});

이 솔루션은 저에게 효과적이었습니다. Page Scroll Down에서 빠르게 작동합니다.


0
var pixelFromTop = 500;     
$('html, body').animate({ scrollTop: pixelFromTop  }, 1);

따라서 페이지를 열면 1 밀리 초 후에 자동으로 아래로 스크롤됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.