javascript - 如何在 DIV 元素上滚动时禁用页面滚动并在计数器达到特定值时启用滚动

标签 javascript jquery html css

我正在使用以下代码来防止页面在 DIV 元素上滚动

<script>
$(document).ready(function(){
    $('#stop-scroll').on( 'mousewheel DOMMouseScroll', function (e) { 

      var e0 = e.originalEvent;
      var delta = e0.wheelDelta || -e0.detail;

      this.scrollTop += ( delta < 0 ? 1 : -1 ) * 30;
      e.preventDefault();  

    });
});
</script>

但如果计数器达到某个值(比如 4),我想再次启用滚动,鼠标滚动时计数器将继续增加 1。如果鼠标向上滚动,计数器将减 1,当计数器达到 0 时,滚动禁用将再次启用,用户可以向上滚动页面。

最佳答案

看到你的问题,我添加了一个代码,现在基于特定变量的特定值启用滚动。

同样,您也可以使用您选择的条件并实现相同的逻辑。

$(document).ready(function() {
  $('#stop-scroll').on('mousewheel DOMMouseScroll', function(e) {
    var e0 = e.originalEvent;
    var delta = e0.wheelDelta || -e0.detail;

    this.scrollTop += (delta < 0 ? 1 : -1) * 30;

    if (delta <= -240) {
      return true;
    } else {
      e.preventDefault();
    }
  });
});
#stop-scroll {
  height: 400px;
  width: 100%;
  background: #6a6a6a;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="stop-scroll"></div>

希望附加的代码能帮助您理解。 如果仍然有任何疑问,请随时发表评论。

关于javascript - 如何在 DIV 元素上滚动时禁用页面滚动并在计数器达到特定值时启用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47413029/

相关文章:

jquery - 居中 div - Bootstrap

javascript - 在 for 循环中将信息传递给模态

javascript - 为什么我必须在 IE 中单击两次选择框选项才能使其消失?

javascript - TypeError : $(. ..)[1].attr 不是函数

javascript - 将时间 slider 更改为 30 分钟而不是 1 小时

jquery - 使用 jQuery 创建选项卡但在顶部显示内容

javascript - Jquery 将下拉列表中的值添加到文本输入

javascript - 模态关闭按钮不起作用

jquery - 如何使用jquery加载函数检索的html表单

html - 在CSS中更改背景图像的不透明度