在 IE11 中,不会为文本框触发指针移动事件
onpointermove event is not firing up for textbox in IE11
在窗口 8.1 手机中,IE11 中的文本框未触发 onpointermove 事件。 OnPointerUp 和 OnPointerdown 事件正在正确触发,但 OnpointerMove。
这是重现问题的小提琴,
http://jsfiddle.net/ph0v7reu/6/
document.getElementById("test").onpointerup = function handle1(event){
var result = document.getElementById("result");
result.value = event.type;
return true;
};
document.getElementById("test").onpointermove = function handle2(event){
var result = document.getElementById("result");
result.value = event.type;
return true;
};
document.getElementById("test").onpointerdown = function handle3(event){
var result = document.getElementById("result");
result.value = event.type;
return true;
};
您没有看到指针移动事件,因为移动被解释为平移手势。 使用触摸操作属性禁用对元素的平移,您应该开始接收指针移动事件。
input { touch-action: none; }
欲了解更多信息,你可以看看我最近关于这个的演讲:https://www.youtube.com/watch?v=l8upftEWslM#t=1136
标准的相关部分:http://www.w3.org/TR/pointerevents/#declaring-candidate-regions-for-default-touch-behaviors
使用不带前缀的小写名称 pointermove,这更有利于标准合规性和未来的兼容性
所以你的代码应该是:
document.getElementById("test").pointermove = function handle2(event){
当某些可编辑区域获得焦点时,IE10和IE11的移动版本似乎有很多错误。
在可编辑区域下表示:<textarea>, <input type="text">
或类似,以及带有 contentEditable 属性的div。
IE10有一个错误,当可编辑区域获得焦点时,任何具有注册msPointerDown事件处理程序的元素都不会被触发。
这至少可以部分解决,因为msPointerMove被触发,所以至少你可以通过检查msPointerMove事件上的isMain来假设第一根手指已经触摸了该区域。任何其他触摸都使用 msPointerDown 事件正确处理。
现在IE11,同样的问题...它在聚焦期间正确处理指针向下,但不会触发指针移动。这可以通过用触摸移动事件替换指针移动来部分解决,至少在开始支持触摸事件的最新IE11升级中(即使TouchEvent的绝对完全废话实现)。
我相信IE程序员开始编写好软件的那一天永远不会到来。不幸的是,没有一个好的替代浏览器适用于Microsoft移动系统。
- 将指针事件限制为SVG文本填充
- 如何通过“;函数指针“/事件转换为Polymer/HTML中的子元素
- 禁用指针事件后,1个最后的mouseout触发
- 用modernizr测试ie中的指针事件
- 悬停状态指针事件:无Javascript回退
- 触摸浏览器中的某个元素(如指针事件:无)
- Youtube iframe没有响应通过上图传递的指针事件的点击:none
- 如何通过带有指针事件的 SVG 仅传递点击
- 将指针事件重新触发到较低层(用于与 interact.js 进行不规则形状的拖动)
- jQuery和纯Javascript中的指针事件绑定之间的区别
- Javascript 更改为元素的指针事件 CSS 属性
- 防止在没有指针事件的情况下单击:无
- 指针事件IE11/Surface
- 如何使Internet Explorer模拟指针事件:无
- "指针事件:无”;在IE9和IE10中不起作用
- IE10:指针事件:none仍然触发元素
- css指针事件属性更改和各自的jquery事件不一起触发
- JavasScript:如何防止用户在不使用禁用/指针事件的情况下选择选择选项列表中的任何内容
- 如何使用指针事件只对滚动事件作出反应?
- 指针事件和不透明度在IE10中不工作