小编Mar*_*air的帖子

区分仅触摸设备和鼠标和触摸设备

现在,我正在处理支持拖放的项目的一部分。看图澄清一下:

图片

即使它是德语,我想它也很简单:用户可以从顶部拖动蓝色框,在下面的灰色区域中说“Verfügbare Empfänger”。这工作得很好。

在移动设备上,我只是删除了拖放和灰色区域,可以通过单击添加蓝色框。

现在针对实际问题:为了检测触摸,我使用了我在 StackOverflow 某处挖掘的以下 javascript 方法:

if (window.matchMedia("(any-pointer: coarse)").matches) {
    vm.touchScreen = true;
}
Run Code Online (Sandbox Code Playgroud)

根据 vm.touchScreen 的值,启用/禁用拖动。但是,我们的一位客户拥有同时支持触摸和鼠标的设备。可以想象,因为在这种情况下 touchScreen 设置为 true,即使用户有鼠标也不能使用拖放。

因此,我正在寻找类似的东西:

getInputType=function(){
    if(somecheck1)return 1;/Touch only
    if(somecheck2)return 2;//Mouse only
    if(somecheck3)return 3;//Mouse and Touch
}
Run Code Online (Sandbox Code Playgroud)

我实际上已经有了一个有点实用的解决方案。但是,它依赖于用户在显示我在图像中向您展示的部分之前触发 mouseEvents 和 touchEvents。通过提前触发鼠标或触摸,设置了两个布尔值:hasMouse 和 hasTouch。当然,如果用户立即通过拖放刷新显示部件的页面,这将不起作用。

如果有人可以帮助我或为我提供正确解决方案的链接,我会很高兴!

此致

javascript browser mouse touch

2
推荐指数
1
解决办法
669
查看次数

标签 统计

browser ×1

javascript ×1

mouse ×1

touch ×1