2012-04-21 7 views
2

현재 터치 스크롤 장치 및 데스크탑 브라우저에서 요소를 스크롤 할 수 있도록 사용자 정의 스크롤 플러그인 (나에 의해 작성된)을 사용하는 프로젝트를 진행 중입니다. 모든 것이 올바르게 작동합니다 (iOS의 속도 및 감속 포함).사용자 정의 스크롤 막대 jQuery/JavaScript의 수학

그러나 남은 유일한 문제는 사용자가 스크롤 할 때 스크롤 막대의 상단 (또는 왼쪽) 위치를 계산하는 것입니다. 나는 다음과 같은 포뮬러로 스크롤 바의 높이를 계산 한 :이 막대의 정확한 높이를 계산하는 것

Math.round((container.height()/content.height()) * 100); 

,하지만 지금은 스크롤 바의 위치가 때 이동해야합니다 얼마나 많은에 의해 작동하는 포뮬러 필요 사용자가 스크롤합니다. 나는 Google을 통해 확인했고 사용법을 많이 찾을 수 없었으며 여기에서도 검색했으며 모든 의견을 환영합니다.

  • 컨테이너 높이
  • 내용 높이
  • 현재 스크롤 위치 (scrollTop)
  • 스크롤 바의 높이

답변

4

:

나는 수식에 사용하기 위해 다음과 같은 데이터를 사용할 수있다 스크롤 바의 위치는 다음 공식으로 계산되어야합니다 :

또한
Math.round((scrollbar.height * scrollTop/content.height()); 
+2

: scrollbar.height이 식에 의해 계산되어야한다 : 'Math.round ((scrollbarArea.height * container.height/content.height()); ' 보통 scrollbarArea.height = container.height –

+0

답장을 보내 주셔서 감사합니다. 그러나 이것이 작동하지 않는 것 같습니다. 예를 들어, 여기에 몇 가지 스크롤이 발생한 후 계산이 모습입니다 : 358 * 6백98분의 33 = 17 358 * 6백98분의 40 = 21 358 * 6백98분의 54 = (28) 당신이 도와 주 시겠어요? 나는 스크롤바의 높이보다는 위치의 계산에 문제가 있다고 생각한다. (나는 스크롤바의 공식을 사용했다. 높이도). – BenM