2017-09-06 4 views
2

나는 jQuery에 매우 익숙하다. 그래서 내 어리 석음을 신경 쓰지 마라.

나는 창이로드, 그것은 ID main div로 이동하는 경우

$(document).ready(function() { $('#guide-wrap').scrollTop($('#main').position().top); }); 

그래서 나는 그것이를 애니메이션을 적용 할 스타일이
html, body{ 
    height: 100%; 
    overflow: auto; 
} 

그리고이 스크립트가 하지만 height: 100%; overflow: auto;이 스크립트를 사용할 수 없기 때문에 :

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

아니면 어떻게해야할지 모르겠다. 나는 당신들에게 아주 명백하게 보일지도 모른다는 것을 압니다.하지만 나는 아주 새롭고 여기에 게시하기로 결정하기 전에 많은 구글을 ​​가졌습니다. 제발 도와주세요.

+0

'overflow : auto'로'scrollTop : 0'이'# main'을 찾을 수 없습니다. – Sovai

답변

1

$('html, body').animate({scrollTop: 0}, 'slow');은 애니메이션 스크롤에 대해 완전히 유효한 코드입니다. 그러나 페이지의 상단으로 스크롤하는 애니메이션은 페이지가 일 때 자동으로이 맨 위에 표시되므로 의미가 없습니다. 당신이 하이퍼 링크 클릭 트리거하기 위해 스크롤을 찾고 있다면

, 당신은 기본 동작을 방지하기 위해 클릭 이벤트에 e.preventDefault()을 통과하는 것을 기억해야합니다. 링크가 동일한 페이지 (예 : #)를 가리키는 경우이 동작이 방지되지 않는 한 링크가 맨 위로 이동합니다. 이 도움이

$(".scroll-top").on("click", function(e){ 
 
    e.preventDefault(); 
 
    $('html, body').animate({scrollTop: 0}, 'slow'); 
 
});
.tall { 
 
    height: 200vh; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="tall">Top of the page</div> 
 

 
<a href=# class="scroll-top">Scroll Up</a>

희망 :

다음은 작업 예 (링크를 보려면 아래로 스크롤)입니다! :)

+0

안녕 Obsidian 시대, 간단하지만 고마워. e.preventDefault(); 문제를 해결했다. – Sovai

0
$("html, body").animate({ scrollTop: $("#main").offset().top }, "slow"); 
+0

Hello BrandonW, 답변 해 주셔서 감사합니다. 그 모양은 효과가 있지만 왜 나는 모르지만 아무것도하지 않습니다. 페이지를 새로 고침했지만 아무 것도 보이지 않습니다. – Sovai

+0

유스 케이스에 따라 다릅니다. 브라우저가 실제로 페이지의 낮은 위치에서 다시로드하는 것처럼 페이지로드시이를 사용하는 것은 드뭅니다. 신뢰할 수는 없습니다. 또는 엠버 같은 프레임 워크를 사용하고 있습니다. 하이퍼 링크에서 e.preventDefault()와 더 관련이 있거나 버튼 클릭에 대한 작업을 시작하는 것이 좋습니다. – BrandonW

+0

감사합니다. BrandonW. e.preventDefault()가 트릭을 수행합니다. – Sovai

관련 문제