2009-08-08 12 views
18

사용자가 웹 페이지를 스크롤하는 특정 지점에 도달하면 스크롤바 위치를 변경할 수 있습니까? 예를 들어 페이지 아래쪽 절반에 도달하면 스크롤바가 자동으로 위로 이동합니다.스크롤 막대 위치 변경

답변

29

당신은 onscroll 이벤트를 사용하여 스크롤의 현재 위치의 비율을 계산할 수 있습니다, 그것은 50 %에 도달하면 스크롤 위치가 scrollTo 기능을 페이지 상단으로 설정할 수 있습니다 :

window.onload = function() { 
    window.onscroll = function() { 
    var doc = document.body, 
    scrollPosition = doc.scrollTop, 
    pageSize = (doc.scrollHeight - doc.clientHeight), 
    percentageScrolled = Math.floor((scrollPosition/pageSize) * 100); 

    if (percentageScrolled >= 50){ // if the percentage is >= 50, scroll to top 
     window.scrollTo(0,0); 
    } 
    }; 
}; 

내 예 here을 확인할 수 있습니다.

+1

@CMS : 우수 답변! – Josh

+0

window.scrollTo (0,0); 가 나를 위해 작동하지 않습니다. – SuperUberDuper

9

네, 몇 번 본적이 있습니다. 여기에 몇 가지 JS 코드는 다음과 같습니다

window.scrollBy (0,50)

(50) 당신이로 스크롤 할 픽셀의 양.

2

(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) 모든 브라우저에서 현재 스크롤 위치를 제공해야합니다.

4

당신이 신경 써야 할 세 가지 스크롤 기능은 window.scroll(x,y), window.scrollBy(dx,dy)window.scrollTo(x,y)입니다.

David가 언급 했으므로 어디서 왔는지 알기 위해 스크롤 위치가 필요하며 window.onscroll 이벤트를 사용하면이 계산을 수행 할 수 없습니다.

+1

모든 브라우저에서 사용할 수 있습니까? 아니면 일부 기능을 검색해야합니까? –