【问题标题】:mousewheel event triggered on ipad chromeipad chrome上触发的鼠标滚轮事件
【发布时间】:2014-11-25 12:04:16
【问题描述】:

我有 2 个这样的事件监听器:

window.addEventListener("mousewheel", mouseWheel, false);
window.addEventListener("DOMMouseScroll", mouseWheel, false);

两者都触发相同的功能mouseWheel。这在台式机和笔记本电脑浏览器上完美运行。在 ipad 或触摸设备上,这些事件不应触发,因为它们是触摸滚动事件,而不是鼠标滚轮。在 iPad Safari 中,事件不会按预期触发。但是在 iPad Chrome 中,事件会触发。这是不受欢迎的行为。我该如何阻止它?

【问题讨论】:

    标签: javascript ios ipad google-chrome


    【解决方案1】:

    It's not simple 用于检测设备是否启用了触摸功能。

    正如文章建议的那样,你可以试试这个:

    var hasTouch = false;
    
    window.addEventListener('touchstart',function setHasTouch(){
      hasTouch = true;
      window.removeEventListener('touchstart', setHasTouch);
    });
    

    然后在执行 mouseWheel 函数之前检查设备是否启用了触控:

    window.addEventListener("mousewheel", mouseWheel, false);
    window.addEventListener("DOMMouseScroll", mouseWheel, false);
    
    function mouseWheel() {
      if (hasTouch) return false;
      // Your code
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 1970-01-01
      • 2011-09-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多