禁用滚动整个部分

时间:2019-02-21 14:06:06

标签: javascript

我有一个EventListener使网站按完整部分滚动

document.body.addEventListener(
      "touchmove",
      function(t) {
        t.preventDefault(),
          e.scrollLock ||
            ((e.deltaY = e.startY - t.touches[0].clientY),
            (e.deltaX = e.startX - t.touches[0].clientX),
            Math.abs(e.deltaY) > Math.abs(e.deltaX) &&
              (e.deltaY > 3 &&
                !e.isAnimating &&
                e.currSection + 1 < e.sections.length &&
                ((e.isAnimating = !0),
                e.getSection(e.currSection + 1),
                e.sectionTitle.getSection(e.currSection + 1)),
              e.deltaY < -3 &&
                !e.isAnimating &&
                e.currSection - 1 >= 0 &&
                ((e.isAnimating = !0),
                e.getSection(e.currSection - 1),
                e.sectionTitle.getSection(e.currSection - 1))));
      },
      { passive: !1 }
    ),

我需要禁用它并使其正常滚动。

2 个答案:

答案 0 :(得分:0)

如果您只想在某些情况下动态删除它,可以通过以下方式进行尝试:

document.body.removeEventListener(type, listener[, options])

removeEventListener

上有不错的读物

从文档中

  

EventTarget.removeEventListener()方法从EventTarget中删除先前已向EventTarget.addEventListener()注册的事件侦听器。使用事件类型,事件侦听器功能本身以及可能影响匹配过程的各种可选选项的组合来标识要删除的事件侦听器;请参阅匹配事件监听器以进行删除

语法:

  

target.removeEventListener(type,listener [,options]);

     

target.removeEventListener(type,listener [,useCapture]);

其中type是您的字符串,用于指定要为其删除事件侦听器的事件的类型,而listener是要从事件目标中删除的事件处理程序的EventListener函数。

如果您想将其全部删除-只需将其注释掉或按照注释中的建议将其删除即可。

答案 1 :(得分:0)

此功能对我有用

$('#elementid').on('touchmove', function (e) {
 e.stopPropagation();
});