我在Windows 8上使用指针和手势事件有问题。
问题是我无法通过JavaScript在网站上检测到任何手指/手势运动。我确实遵循了Microsoft的指示:http://msdn.microsoft.com/en-us/library/ie/hh673557(v = vs.85).aspx。
但是,即使是最简单的功能window.navigator.msPointerEnabled
也返回null
或false
时,它应该返回true
(因为我正在使用触摸端的Windows 8平板电脑)。
以前有人有相同的问题吗?如果是这样,您是如何解决此问题的?
The following example is a basic paint application that works with mouse, touch, and pen via pointer events.
<style>
html {
-ms-touch-action: none; /* Shunt all pointer events to JavaScript code. */
}
</style>
<canvas id="drawSurface" width="500px" height="500px" style="border:1px solid black;"></canvas>
<script type='text/javascript'>
window.addEventListener('load', function() {
var canvas = document.getElementById("drawSurface"),
context = canvas.getContext("2d");
if (window.navigator.msPointerEnabled) {
canvas.addEventListener("MSPointerMove", paint, false);
}
else {
canvas.addEventListener("mousemove", paint, false);
}
function paint(event) {
context.fillRect(event.clientX, event.clientY, 5, 5);
}
});
</script>
有关更多详细信息查看此链接
除了通常的内容(正确的Doctype和Meta标签)外,您还必须设置-ms-touch-action:none;在CSS中的HTML和或身体元素上:
html, body {
-ms-touch-action: none;
}
编辑:( MSGENTURECHANGE提供了完整的HTML样本)