Javascript получить сумму прокрутки в IE - PullRequest
1 голос
/ 22 июля 2011

У меня есть div с возможностью прокрутки, который я хочу условно прекратить прокрутку.

Код выглядит примерно так:

if(theDiv.scrollTop + theDiv.clientHeight + thisScrollAmount > theDiv.scrollHeight)
    StopScrolling();

Как получить сумму прокрутки прокрутки?(Я знаю, что event.wheelDelta обычно составляет + -120, но кажется количеством, которое фактически прокручивается, когда одна прокрутка может сильно отличаться от этой.)

РЕДАКТИРОВАТЬ Извинения.Кажется, этот вопрос неясен.Я искал, сколько прокручивает div WOULD , если событие не было отменено его обработчиком.Я предполагал, что он принимает разные значения, но, похоже, он принимает только значения + - 120.

Возможно, его следует удалить.

Ответы [ 2 ]

0 голосов
/ 22 июля 2011
    //Works pretty good

<style type="text/css">
  #divTest{width:150px;height:200px;overflow:auto}
</style>

<script>
  var  amountCanScroll = 400
  function maxScroll( ){
    if( document.getElementById('divTest').scrollTop > amountCanScroll){
      document.getElementById('divTest').scrollTop = amountCanScroll;
    }
  }
</script>


<body><div id="divTest" onscroll="maxScroll()" >
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
      1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>1<br/>
    </div>
</body>
0 голосов
/ 22 июля 2011

Прослушайте событие onscroll и сравните свойство scrollTop этого div с максимально допустимой суммой прокрутки (это будет произвольное число, которое вам придётся придумать), и если оно больше этого,заново установите scrollTop этого div на эту максимальную сумму.

...