2011-10-02 3 views
0

페이지가 특정 지점에 도달하면 위를 향하도록 애니메이션하려는 이미지 (아래쪽 화살표)도 있습니다. 아래쪽으로 스크롤하는 기능이 있지만 기능을 종료하는 방법을 알 수는 없습니다. 나는 자바 스크립트로 매우 새롭고 분명히 그렇게 잘하지 못한다. http://jsfiddle.net/thindjinn/LCYEp/embedded/result/어떻게 javascript를 사용하여 자동 스크롤을하고 기능을 중지 한 다음 맨 위의 onClick으로 스크롤합니까?

내 포스터로 앤더슨 쿠퍼를 즐기십시오 : 여기

는 바이올린 파일에 대한 링크입니다. 코드를 테스트하는 중이었습니다. : D

답변

2

사이드 바에서 : setTimeout() 대신 setInterval()을 사용하십시오. 그것은 재귀 함수의 필요성을 제거합니다.

페이지가 더 이상 스크롤되지 않게하려면 clearInterval()으로 전화하십시오.

+0

가 나는 등이 정확한지 여부를 확인할 수 없습니다. setTimeout을 setInterval로 변경했지만 정확히 다음에 무엇을해야할지 모르겠습니다. 또한 clearInterval을 호출하는 방법을 모른다. – Marlon

+0

'setInterval()'은 ** 당신의 함수를 대체해야합니다 **. 'var scrolling = setInterval (window.scrollBy (0,50), 100);'스크롤을 시작하려면'clearInterval (scrolling);'중지하십시오. – Dennis

0

이 시도 :

http://jsfiddle.net/LCYEp/6/

나는이 추가 :
window.pageScroll=function() { 
    window.scrollBy(0,50); 

    if(document.body.scrollHeight> 
     document.html.clientHeight+ 
     document.body.scrollTop){ 
     scrolldelay = setTimeout('pageScroll()',100);} 
} 

는 어떤 이유로, 나는 문서 본문의 clientHeight 잘 작동시킬 수 없습니다.

scrollHeight는 스크롤 할 수있는 페이지의 높이입니다. clientHeight는 스크롤 영역의 가시 영역입니다. scrollTop은 스크롤 가능 영역의 맨 위에서 스크롤 한 거리입니다. scrollTop + clientHeight가 scrollHeight와 같으면 맨 아래로 스크롤했습니다.

은 참조 : 내가 JS에 대해 충분히 모른다 간단하기 때문에

https://developer.mozilla.org/en/DOM/element.clientHeight https://developer.mozilla.org/en/DOM/element.scrollHeight https://developer.mozilla.org/en/DOM/element.scrollTop

+0

그냥 아래쪽으로 가려면 화살표를 여러 번 클릭해야합니다. 그것은 스크롤하는 것이 아니라 점프하고 있습니다. :/나는 그 문제가 무엇인지 정확히 알만큼 충분하지가 않다. – Marlon

관련 문제