取消IE9触摸滚动事件并调用鼠标移动(可能)
Cancel IE9 touch scroll event and invoke Mousemove, possible?
在带有IE9和多点触摸屏(如HP TouchSmart)的Windows 7计算机上,如果您触摸到的页面足够高,可以有滚动条并在页面滚动时上下移动手指。这似乎不会引发任何mousemove
事件。如果您触摸屏幕并最初向左或向右移动,而不是向上和向下移动,则会触发mousemouse
事件。
我不想取消这个滚动并导致浏览器调用一个正常的mousemove
事件。这可能吗?
编辑:IE9中似乎没有触摸事件。IE9在Windows 7上支持触摸事件吗?
编辑2:关于这件事,还有其他几个有趣的地方。首先,当手势触发滚动时,浏览器通常会触发mousewheel
事件,这通常会被捕获并取消。第二,在这种特殊的情况下,你可以用这个破解$(document).bind('mousedown mouseup click dblclick', function (e) { });
来阻止IE9上的滚动,就像黑客有时做的那样,这对我来说没有任何意义——可能可以使用更少的事件绑定,但我没有很好的访问权限来轻松测试设备。
在花了一些时间测试各种抑制默认事件响应的方法之后,我不知道如何抑制滚动事件。但是,您应该能够从滚动事件处理程序中激发mousemove事件。
window.onscroll = function(e){
element.onmousemove();
}
//jquery
$(window).scroll(function(e){ element.mousemove(); } );
一个原始的例子。
我想你可以尝试阻止自动滚动的两件事:将溢出(或overflow-y)设置为隐藏在你的身体元素上,或者作为你的onscroll处理程序的一部分,试图滚动回你的原点。将body的溢出设置为隐藏将阻止滚动并隐藏滚动条,但我不确定这是否是您想要的。
尝试触摸事件而不是鼠标事件。
我在iPad上也遇到了同样的问题。我不得不添加一个e.preventDefault();到touchmove事件。我只对跟踪交互的div执行了此操作,而不是对整个页面执行。
element.ontouchmove = function(e){ e.preventDefault(); };
不知道你的设备,但可能值得一试。
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- D3.js:如何在svg上移动鼠标时创建弹出事件
- 为什么当我快速移动鼠标时,我的jQuery会崩溃
- 单击链接时加载移动鼠标光标 3-4 秒
- HTML 表在 TD 之间移动鼠标时触发鼠标输出
- 计算用户使用JS/Jquery滚动和移动鼠标的次数
- 如何使用JavaScript移动鼠标指针
- HTML5画布:如果在画布上移动鼠标时按下了鼠标按钮,则进行检测
- 通过jQuery或JS移动鼠标
- 引导程序 3 日期选取器 v4:移动鼠标时自动选择自定义周
- 无法检测在移动鼠标时按下的鼠标按钮
- 移动鼠标以触发CasperJS中的悬停事件
- 移动鼠标时更改视频的时间
- 当我按住鼠标按钮移动鼠标时,Fabric.js–元素是未定义的
- 当don't移动鼠标并在移动时出现
- 没有jquery的移动鼠标悬停事件
- 火狐在重型JS上崩溃,除非我移动鼠标
- jQuery点击事件只在移动鼠标后工作
- Javascript / jQuery在弹出窗口后检测悬停元素&不移动鼠标
- 如何绘制签名(点击,保持和移动鼠标)使用javascript