javascript - 仅在跨越某个点时运行某些代码

标签 javascript jquery

我想每当滚动条穿过某个点时更新一些数据,它看起来像这样:fiddle

var scrollElement = document.getElementById('scrollElement');
var line = document.getElementById('line');


scrollElement.addEventListener('wheel', function(e) {
    this.scrollLeft += e.deltaY;
    if (this.scrollLeft > 106) {
    console.log('something')
  } else if (this.scrollLeft < 106) {
    console.log('something else')
  }
});

上面代码中的问题是每次滚动条低于106px或高于106px时都会执行IF。我只想在越线时执行其中一些。所以基本上我只想在从左到右穿越时做一些事情,并且我只想在从右到左穿越时做一些事情。怎样才能达到这样的结果呢?提前致谢!

最佳答案

所以添加一个 bool 值

var hasRun = false;

并将其添加到支票

if(this.scrollLeft < 10 && !hasRun) { hasRun = true; }

关于javascript - 仅在跨越某个点时运行某些代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43055406/

相关文章:

jquery - 电话验证正则表达式(TEXT 和 TEXTTWO 除外)

javascript - JS : get hostname from url , 正则表达式不工作

javascript - 如何在同一文件中访问 PHP 脚本内的 jQuery 或 javascript 变量?

javascript - 将 javascript 文件链接到 WordPress 子主题

javascript - 跨浏览器jquery

javascript - 在禁用 JavaScript 的情况下使用 HTML 提交表单

javascript - Bootstrap 弹出框 : hide when cursor moves outside of the window

javascript - 如何查找列表项的索引(ul-li)?

javascript - 来自外部加载图像的 HTML 5 Canvas getImageData

javascript - 处理非js用户-设置元素显示:none/opacity :0 before page is rendered