2

在我们的页面上,我们有一些长水平滚动的 iframe <div>。如果用户使用鼠标,他们可以使用滚动条滚动,我们希望他们能够选择 iframe 中的文本。但是,如果他们只使用触摸,滚动条很麻烦,我想在整个东西上覆盖一个透明元素,让他们能够通过拖动轻松滚动,这当然会牺牲选择文本功能,但在那个场景。

这让我想到了我的问题,有没有办法可靠地检测用户是否通过鼠标与网页交互?

我在检测触摸或鼠标时所看到的一切都是触摸会广播鼠标事件,因此很难检测到触摸或鼠标(更不用说你可以同时拥有两者)。我的问题更简单——它是用户是否通过鼠标与页面进行了交互。

任何人都可以想出一种方法来可靠地检查这个吗?

4

1 回答 1

2

鼠标可以做一件触摸设备永远做不到的事情——在没有按下任何按钮的情况下移动。所以我只是onMouseMove在页面加载时安装一个事件,如果它在没有按下按钮的情况下触发,则将用户标记为鼠标用户。然后,您可以通过 cookie 或 LocalStorage 保持此状态,因为标志不会在同一环境中更改,并立即删除该事件。实现单次触发事件的精确方法取决于您使用的库(如果有的话),但使用 Mootools/JQuery 文档应该很容易。

一般来说,在大多数情况下,我建议使用更简单的方法来检查触摸界面:

if('ontouchstart'in window) 
{
    /* it's a touch device */ 
}
于 2013-05-07T15:56:29.753 回答