Javascript ipad chrome上触发鼠标滚轮事件

Javascript ipad chrome上触发鼠标滚轮事件,javascript,ios,ipad,google-chrome,Javascript,Ios,Ipad,Google Chrome,我有两个事件侦听器,如下所示: window.addEventListener("mousewheel", mouseWheel, false); window.addEventListener("DOMMouseScroll", mouseWheel, false); 两者都触发相同的功能鼠标滚轮。这在台式机和笔记本电脑浏览器上非常有效。在ipad或触摸设备上,这些事件不应触发,因为它们是触摸滚动事件,而不是鼠标滚轮。在iPad Safari中,事件不会按预期触发。然而,在iPad Chro

我有两个事件侦听器,如下所示:

window.addEventListener("mousewheel", mouseWheel, false);
window.addEventListener("DOMMouseScroll", mouseWheel, false);
两者都触发相同的功能
鼠标滚轮
。这在台式机和笔记本电脑浏览器上非常有效。在ipad或触摸设备上,这些事件不应触发,因为它们是触摸滚动事件,而不是鼠标滚轮。在iPad Safari中,事件不会按预期触发。然而,在iPad Chrome中,事件确实会触发。这是不受欢迎的行为。如何停止?

以检测设备是否已启用触摸功能

正如文章所建议的,您可以尝试以下方法:

var hasTouch = false;

window.addEventListener('touchstart',function setHasTouch(){
  hasTouch = true;
  window.removeEventListener('touchstart', setHasTouch);
});
然后在执行鼠标滚轮功能之前,检查设备是否已启用触摸功能:

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

function mouseWheel() {
  if (hasTouch) return false;
  // Your code
}