html - 可靠地检测用户是否在网页上使用鼠标?

标签 html touch mouseevent dom-events

在我们的页面上,我们有一些长水平滚动的 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/

相关文章:

html - 行间距

java - 如何拦截整个安卓屏幕上的每个触摸事件?

jquery - 检测留下埋藏的元素 - Jquery

java - 从 servlet 更新数据

javascript - 只显示一次预加载器而不显示正文内容

ios - 有什么办法可以在取消 UIPopoverController 的同时允许触摸取消按钮吗?

c++ - 引用 GetCapture() 函数捕获鼠标意味着什么?

WPF Multitouch DeltaManipulation 鼠标事件等效?

javascript - 为什么 jQuery 图像 slider 不起作用?

javascript - 使用 quo.js 触摸滑动坐标