我只是一个卑微的uC程序员,正试图为他的老板整理一个小网页界面。到目前为止,我已经完成了所有工作,除了能够使用触摸输入选择画布上的方块。
这是在运行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触摸事件获得了开始和结束事件,但是“move”事件没有注册。
我确信这是非常简单的我在这里失踪了,谢谢你帮助我!
答案 0 :(得分:25)
我假设您正在与Windows 8上的桌面IE中的HTML页面进行交互。在桌面IE中,MSPointerMove未在该画布上触发,因为当用户在屏幕上移动手指时的默认行为是平移内容。如果使用以下代码段设置画布样式,则应检测MSPointerMove事件。
style =“ - ms-touch-action:none”
这是一篇关于如何在许多浏览器上进行触摸的精彩文章。 http://blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-mouse-input-in-all-browsers.aspx
答案 1 :(得分:0)
三星Slate 7平板电脑在旧版本的驱动程序中可能存在相关错误。我看到另一个标记为[internet-explorer-10]的答案,其中包含详细信息。你有没有更新你的驱动程序?