在我们的页面上,我们有一些长水平滚动的 iframe <div>
。如果用户使用鼠标,他们可以使用滚动条滚动,我们希望他们能够选择 iframe 中的文本。但是,如果他们仅使用触摸,则滚动条会很麻烦,我想在整个事物上覆盖一个透明元素,以使他们能够通过拖动轻松滚动,这当然会牺牲选择文本功能,但在以下情况下是有意义的:那个场景。
这让我想到了我的问题,有没有一种方法可以可靠地检测用户是否通过鼠标与网页交互?
我在检测触摸或鼠标时看到的一切都是触摸将广播鼠标事件,因此很难检测触摸或鼠标(更不用说您可以同时拥有两者)。我的问题更简单 - 问题是用户是否通过鼠标与页面交互。
有人能想出一种方法来可靠地检查这一点吗?
最佳答案
鼠标可以做触摸设备无法做的一件事——无需按下任何按钮即可移动。因此,我只需在页面加载时安装一个 onMouseMove
事件,如果它触发没有按下按钮,则将用户标记为鼠标用户。然后,您可以通过 cookie 或 LocalStorage 保留此信息,因为该标志不会在同一环境中更改,并立即删除该事件。实现单发事件的精确方法取决于您使用的库(如果有的话),但是有了 Mootools/JQuery 文档,这应该很容易。
总的来说,我建议在大多数情况下使用更简单的方法来检查触摸界面:
if('ontouchstart'in window)
{
/* it's a touch device */
}
关于html - 可靠地检测用户是否在网页上使用鼠标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423304/