Javascript在IE中获取滚动量

时间:2011-07-21 23:31:38

标签: javascript internet-explorer scroll

我有一个可滚动的div,我想有条件地停止滚动。

代码如下:

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

如何获得滚动滚动的金额? (我知道event.wheelDelta通常为+ -120,但似乎实际滚动的数量,当一个滚动可能与此完全不同时。)

修改 道歉。看来这个问题还不清楚。如果事件没有被它的处理程序取消,我一直在寻找div WOULD 滚动多少。我假设它采用了不同的值,但它似乎只取值+ - 120。

也许应该将其删除。

2 个答案:

答案 0 :(得分:0)

收听onscroll事件并检查该div的scrollTop属性与您允许的最大滚动量(这将是您必须提出的任意数字),如果是更重要的是,将该div的scrollTop重新设置为该最大值。

答案 1 :(得分:0)

    //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>