我有一个可滚动的div,我想有条件地停止滚动。
代码如下:
if(theDiv.scrollTop + theDiv.clientHeight + thisScrollAmount > theDiv.scrollHeight)
StopScrolling();
如何获得滚动滚动的金额?
(我知道event.wheelDelta
通常为+ -120,但似乎实际滚动的数量,当一个滚动可能与此完全不同时。)
修改 道歉。看来这个问题还不清楚。如果事件没有被它的处理程序取消,我一直在寻找div WOULD 滚动多少。我假设它采用了不同的值,但它似乎只取值+ - 120。
也许应该将其删除。
答案 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>