【问题标题】:How to detect user manualy move the scroll or by script in javascript or jquery如何检测用户手动移动滚动或通过javascript或jquery中的脚本
【发布时间】:2019-10-31 09:27:17
【问题描述】:

在 Javascript 中,我想检测用户是移动滚动条还是脚本移动的滚动条。我已经编写了使用 javascript 移动 div 滚动条的代码。在这里,我想区分滚动位置是用户手动移动还是脚本移动。我使用了下面的代码。但它检测到所有。

$("#log").scroll(function(e) {
    console.log("scrolling");
});

var logDiv = document.getElementById('log');

logDiv.addEventListener('DOMMouseScroll', function() {
    console.log("mouseEvent");
    userManualScroll = true; 
});

请帮帮我。

【问题讨论】:

  • 所以基本上在文档中,你需要知道滚动事件是否触发
  • 其实滚动事件是手动触发的或者脚本触发的(例如:$("#log").scrollTop(10))
  • 这个链接写得很好,你可以参考这里,让我知道它是否适合你stackoverflow.com/questions/7035896/…
  • 这个文档很有用。

标签: javascript jquery


【解决方案1】:

设置一个全局变量

var userscroll = true;

当你通过JS调整滚动位置时,在滚动操作之前将userscroll设置为false,之后设置为true。

在任何只在用户滚动时触发的函数中,添加一个 if 子句

if (userscroll) {
   ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多