我有 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/