touchmove/MPointerMove事件在Windows 8中未启动

touchmove/MSPointerMove event not firing in Windows 8

本文关键字:启动 Windows MPointerMove 事件 touchmove      更新时间:2023-09-26

我只是一个低级的uC程序员,正试图为他的老板组装一个小的web界面。到目前为止,除了能够使用触摸输入在画布上选择一个正方形之外,我已经完成了所有工作。

这是在运行Windows 8和IE10的三星Slate 7平板电脑上

我在这里把代码提炼成了基本要素:

var cxt;
var c;
window.onload = function () {
c = document.getElementById('displayCanvas');
cxt = c.getContext('2d');

/*
c.addEventListener("MSPointerUp", mouseUp, false);
c.addEventListener("MSPointerMove", mouseMove, false);
c.addEventListener("MSPointerDown", mouseDown, false);
*/
c.addEventListener("touchend", mouseUp, false)
c.addEventListener("touchmove", mouseMove, false);
c.addEventListener("touchstart", mouseDown, false);
}

function mouseDown(downE) {
    window.console &&  console.log("down");
};

function mouseMove(moveE){
    window.console && console.log("move");
}

function mouseUp() {
    window.console && console.log("end");
}

我使用MSPointer和"普通"javascript触摸事件来获取开始和结束事件,但"移动"事件没有注册。

我相信我在这里错过了一些非常简单的东西,谢谢你帮我!

我假设您正在与Windows8桌面IE中的HTML页面进行交互。在桌面IE中,MSPointerMove不会在画布上启动,因为用户在屏幕上移动手指时的默认行为是平移内容。如果使用以下代码段设置画布样式,则应检测到MSPointerMove事件。

style="-ms触摸动作:无"

下面是一篇关于如何在许多浏览器上进行触摸操作的好文章。http://blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-mouse-input-in-all-browsers.aspx

三星Slate 7平板电脑的旧版本驱动程序中存在一个可能相关的错误。我看到了另一个标记为[internet-explorer-10]的答案,上面有详细信息。你更新了你的驱动程序了吗?