javascript - 在 ipad chrome 上触发的鼠标滚轮事件

标签 javascript ios ipad google-chrome

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

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

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

最佳答案

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
}

关于javascript - 在 ipad chrome 上触发的鼠标滚轮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126269/

相关文章:

javascript - 如何正确地重用 Mocha 测试的描述 block ?

javascript - 如何根据参数调用 sinon Stub YieldsTo 函数

ios - didFinishLaunchingWithOptions 远程通知在应用程序启动时为空

iphone - 邮件应用程序中的 UISegmentedControl

iOS 8 iPad AVCaptureMovieFileOutput 在录制 13 - 14 秒后丢失/丢失/从未获得音轨

ios - 如何从 objective-c 中的静态方法调用非静态方法?

javascript - 如何在 typescript 中指示航类类型

javascript - 从服务内部的 Url 获取 Json

ios - swift 4 : cannot subscript a value of type '[UIFontDesciptor.AttributeName : Any]' with an index of type 'String'

ios - Firebase Remote Config 推送多长时间?