【发布时间】:2018-03-15 12:28:28
【问题描述】:
我正在开发或多或少是一个绘图应用程序。我需要支持 Microsoft Edge,这就是问题所在。只要您想捕捉 touchmove 或 pointermove 事件,Edge 就会尝试滚动(即使不可能)。 Here's an example。只需尝试在那里画一些东西(触摸/笔),即使在 Edge 中鼠标也能完美工作。在其他所有浏览器中(可能除了 IE)它都运行良好。
我不知道为什么 IE 忽略了 preventDefault() 函数。有人有想法吗?
示例:https://jsfiddle.net/ryqagkeb/
实际上无法在 Chrome 和 Edge 上使用我的 Surface Pro 和 Surface Pen。
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;
}
【问题讨论】:
-
可能是传播的东西,你试过
e.stopPropagation();吗? -
请在您的问题中添加minimal reproducible example 作为edit。我们需要查看您的实际代码,以确定其中可能出现的问题。指向广泛教程的链接是不够的。
-
我添加了一个示例。它在使用鼠标时有效,但在您使用触摸或笔输入时停止工作:(
标签: javascript canvas microsoft-edge