ipad chrome上触发的鼠标滚轮事件
Posted
技术标签:
【中文标题】ipad chrome上触发的鼠标滚轮事件【英文标题】:mousewheel event triggered on ipad chrome 【发布时间】:2014-11-25 12:04:16 【问题描述】:我有 2 个这样的事件监听器:
window.addEventListener("mousewheel", mouseWheel, false);
window.addEventListener("DOMMouseScroll", mouseWheel, false);
两者都触发相同的功能mouseWheel
。这在台式机和笔记本电脑浏览器上完美运行。在 ipad 或触摸设备上,这些事件不应触发,因为它们是触摸滚动事件,而不是鼠标滚轮。在 iPad Safari 中,事件不会按预期触发。但是在 iPad 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
【讨论】:
以上是关于ipad chrome上触发的鼠标滚轮事件的主要内容,如果未能解决你的问题,请参考以下文章