设置pointer-events:none
似乎也会关闭触控事件。这显然没有意义,因为"触摸"事件不是指针"指针"事件。我的手指不是指针。 :)
有没有办法关闭仅指针/鼠标事件,但只留下触摸事件?像touch-events
这样的属性会很好。
答案 0 :(得分:4)
实际上,触摸事件是基于定义的特定类型的指针事件。
来自W3.org, Pointer Events, Section 1
指针可以是鼠标在屏幕上的任何接触点 光标,笔,触摸(包括多点触控)或其他指向输入 设备
此外:
处理通用指针输入的事件看起来很像那些 for mouse:pointerdown,pointermove,pointerup,pointerover, 指针输出等。这有助于更轻松地从鼠标迁移内容 指针事件的事件。指针事件提供所有常见的 鼠标事件中存在的属性(客户端坐标,目标 元素,按钮状态等)除了其他的新属性 输入形式:压力,接触几何,倾斜等。所以作者可以 轻松编码指针事件以在不同输入之间共享逻辑 有意义的类型,并为特定类型的自定义 只在必要时输入以获得最佳体验。
因此,设置pointer-events:none;
会影响触摸和鼠标事件。
所以回答你的问题;你不能区分mouse events
(我假设pointer events
在你的问题中你基本上是mouse events
}和touch events
只有css和pointer-events
属性。但由于mouse events
和touch events
不同,在这种情况下,您可以根据自己的需要恢复为javascript。
答案 1 :(得分:1)
无法通过CSS禁用鼠标事件。但是您可以使用javascript轻松完成:
使用Modernizr检查触控支持,或只是查看有关触控检测的讨论How can I detect device touch support in JavaScript?
如果不支持触摸事件,请应用CSS类(您之前创建的)或直接在要忽略指针事件的所有元素上添加CSS规则。