首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PointerEvents不检测Wacom片

PointerEvents不检测Wacom片
EN

Stack Overflow用户
提问于 2018-08-18 18:59:43
回答 3查看 2.3K关注 0票数 4

我试图使用指针事件来检测图形平板电脑的输入,包括笔压,但是Chrome和Firefox似乎没有正确地读取平板设备(Wacom 4)。所有指针事件都以与我的鼠标相同的pointerId和pointerType返回,默认压力读数为0.5。我使用的代码如下所示:

代码语言:javascript
复制
container.addEventListener("pointerdown", (event) => {
    console.log(event.pointerId);
    console.log(event.pointerType);
    console.log(event.pressure);
}, true);

它输出"1“、”鼠标“和"0.5”。这发生在"pointerdown“、"pointermove”和"pointerup“事件上。

我在Windows和Linux上都尝试过这种方法,并安装了适当的驱动程序,其他应用程序可以检测笔压(例如,Krita)。

Chrome和Firefox还没有正确地支持图形平板电脑,还是我只是做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-22 04:09:57

回答你的问题:

Chrome和Firefox还没有正确地支持图形平板电脑,还是我只是做错了什么?

不,你没做错什么。

最现代的浏览器支持指针事件。我发现(和其他浏览器一样)“支持”的程度可能会有所不同。

这就引出了这样的问题:“我们如何避免浏览器不兼容的胡说八道?”对于这种特殊情况,我建议使用Pressure.js

要查看它的运行情况(并使用您选择的设备进行测试),请查看Pressure.js实例

票数 6
EN

Stack Overflow用户

发布于 2018-08-22 19:29:09

尝试使用下面这样的函数来确定是否检测到了不同的指针类型:

代码语言:javascript
复制
targetElement.addEventListener("pointerdown", function(ev) {
   // Call the appropriate pointer type handler
   switch (ev.pointerType) {
     case "mouse": 
       process_pointer_mouse(ev); 
       break;
     case "pen": 
       process_pointer_pen(ev); 
       break;
     case "touch": 
       process_pointer_touch(ev); 
       break;
     default:
       console.log("pointerType " + ev.pointerType + " is Not suported");
   }
 }, false);

Mozilla有很多关于鼠标、笔和触摸指针事件的文档。

事件

https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType

票数 1
EN

Stack Overflow用户

发布于 2019-02-12 16:53:18

如果为元素启用/禁用Windows Ink和/或添加以下CSS,可能会得到更好的结果。

代码语言:javascript
复制
div {
  touch-action: none;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51911711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档