javascript - 取消 IE9 触摸滚动事件并调用 Mousemove,可能吗?

标签 javascript touch internet-explorer-9 dom-events

在装有 IE9 和多点触控屏幕(如 HP TouchSmart)的 Windows 7 计算机上,如果您触摸屏幕上的页面高度足以显示滚动条,然后向上或向下移动手指,页面就会滚动。这似乎不会触发任何 mousemove 事件。如果您触摸屏幕并最初向左或向右移动而不是上下移动,它会触发 mousemouse 事件。

我不想取消此滚动并导致浏览器调用正常的 mousemove 事件。这可能吗?

编辑:IE9 中似乎没有触摸事件 Does IE9 support Touch events on Windows 7?

编辑 2: 关于此的其他几个兴趣点。首先是浏览器经常在手势触发滚动时触发 mousewheel 事件,这通常可以被捕获和取消。其次,在这种特殊情况下,您可以使用此 hack $(document).bind('mousedown mouseup click dblclick', function (e) { }); 防止在 IE9 上滚动有时会,对我来说没有任何意义 - 可能可以使用更少的事件绑定(bind),但我没有很好地访问设备来轻松测试。

最佳答案

在花了一些时间测试了各种抑制默认事件响应的方法之后,我不知道如何抑制滚动事件。但是,您应该能够从滚动事件处理程序中触发 mousemove 事件。

window.onscroll = function(e){
    element.onmousemove();
}

//jquery
$(window).scroll(function(e){ element.mousemove(); } );

A primitive example .

我认为有两件事你可以尝试阻止自动滚动:将溢出(或溢出-y)设置为隐藏在你的 body 元素上或作为你的 onscroll 处理程序的一部分,试图滚动回到你的原点。将 body 的溢出设置为隐藏将阻止滚动并隐藏滚动条,但我不确定这是你想要的。

关于javascript - 取消 IE9 触摸滚动事件并调用 Mousemove,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202804/

相关文章:

具有特殊字符和空格的 Javascript 正则表达式

html - Internet Explorer 兼容性灾难

javascript - 可排序用户列表最佳实践

javascript - 从 PHP 读取 Google Analytics cookie

javascript - Barba.js (v2.9.7) 重新加载当前页面而不是下一页

javascript - 如何正确处理点击/触摸事件中的混合设备?

javascript - Famo.us Scrollview + TouchSync - 使 ScrollView/TouchSync 意识到旋转 Z 变换

ios - 如何使用按钮获取触摸输入并将位置输出到 Swift 3 中的标签?

ios - 令人困惑的 SSL 证书错误 - 是否允许端口号?

html - IE8/9 + Quirks 模式不透明度不起作用