2012-11-29 7 views
4

사용자가 평면을 클릭하면 대화 상자가 나타납니다. 어떻게 작동하는지 확인할 수 있습니다 : CLICK HERE스크롤 막대를 잠그고 표시 상태로 유지하는 방법

뷰포트의 높이가 550px보다 큰 경우 스크롤 막대를 잠그는 것이 좋습니다. 이제 overflow:hidden을 본문에 적용하지만 스크롤바가 보이지 않을 때 사이트 점프가 발생합니다. 스크롤을 사용하지 않지만 스크롤 막대를 계속 표시하려고합니다. 가능한가?

미리 감사드립니다.

당신은

function lockScroll() { 
    var lockX = window.scrollX; 
    var lockY = window.scrollY; 

    function lockIt() { 
     window.scrollTo(lockX,lockY); 
     return false; 
    } 

    window.addEventListener("scroll",lockIt,false) 

    return { 
     stop: function(){ 
      window.removeEventListener("scroll",lockIt,false) 
     } 
    } 
} 

사용 (이 스크롤 막대 자체를 끌어 특히 일부 브라우저에 육포를 나타날 수 있습니다) .. 스크롤을 검출하고, 이전 위치로 다시 스크롤하여 스크롤 잠금을 시뮬레이션 할 수 있습니다

+2

링크 ㄱ 것으로 보인다 스크롤을 다시 활성화 할 수 있습니다 로큰롤. –

+1

그것은 깨진 것이 아니며, 확실히 – lukaleli

+1

입니다. 물론. –

답변

7

:

var locker = lockScroll(); // locks scrolling 

그리고이 완료 할 때

locker.stop(); // unlocks scrolling 
+0

감사합니다 -이 도움이되었습니다. 그러나 그것을 사용할 수 없게 만드는 작은 실수가 있습니다. 당신은 ";" after window.addEventListener ("scroll", lockIt, false) .. 그 후에 그것은 훌륭하게 작동합니다. (return 절에 -를 추가하지 마십시오. 다시 그것을 깨뜨립니다.) – Matt

관련 문제