我正在开发一种或多或少是绘图应用的东西。我需要支持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;
}
答案 0 :(得分:3)
所以我认为我自己找到了解决方案并立即发布,因为我认为它非常有用。似乎CSS属性“touch-action”可以解决问题。
环境:
canvas {
touch-action: none;
}
似乎它解决了这个问题。