HTML5指针移动/ touchmove无法在Microsoft Edge中工作

时间:2018-03-15 12:28:28

标签: javascript canvas microsoft-edge

我正在开发一种或多或少是绘图应用的东西。我需要支持Microsoft Edge,这就是问题所在。一旦你想要捕捉touchmove或pointermove事件,Edge就会尝试滚动(即使它不可能)。 Here's an example。只要尝试在那里画一些东西(触摸/笔),鼠标即使在Edge中也能完美地工作。在其他所有浏览器中(IE可能除外),它的效果非常好。

我不知道为什么IE忽略了preventDefault()函数。有人有想法吗?

示例:https://jsfiddle.net/ryqagkeb/

实际上我的Surface Pro& Chrome和Edge上的Surface触控笔。

canvas = document.getElementsByTagName('canvas')[0];
ctx = canvas.getContext('2d');
start = 0;
canvas.onpointerdown = function(evt) {
    start = 1;
}

canvas.onpointermove = function(evt) {
    if(start) {
        ctx.fillRect(evt.clientX, evt.clientY, 5,5);
    }
}

canvas.onpointerup = function(evt) {
    start = 0;
}

1 个答案:

答案 0 :(得分:3)

所以我认为我自己找到了解决方案并立即发布,因为我认为它非常有用。似乎CSS属性“touch-action”可以解决问题。

环境:

canvas {
    touch-action: none;
}

似乎它解决了这个问题。