我可以判断某个设备是否是触控设备吗

… 用 Javascript?

而且我不是指移动设备,而是指任何设备,例如触摸设备(如平板电脑),在这种设备上悬停没有意义。

或者我必须使用 CSS?

1 个赞

需要考虑的一个棘手问题是带触摸屏的笔记本电脑。在这种情况下,主要交互方式倾向于使用鼠标……即使该设备技术上具有触摸屏。这最近给我们带来了一些麻烦,导致了 :sweat_smile: 的反应。

但要回答你的具体问题:我认为 CSS 媒体查询 是可行的方法。我们有 hoverpointerany-hoverany-pointer

然后你可以使用 window.matchMedia 从 JS 中运行这些 CSS 媒体查询,如下所示:

4 个赞

说得对,是个好建议。

我正试图使用主题设置来确定何时在图像上显示某些摘录,而这些摘录通常只在悬停时显示。

在我的例子中,选项将是:

  • 始终开启
  • 仅在触摸设备上(因为在平板电脑/手机上悬停并不真正可用)
  • 仅在悬停时(正常情况)

在这种情况下,识别触摸设备可能不是什么大问题 :sweat_smile:

我只是希望有一个我错过的直接的站点属性,但我会研究你的建议。不过,进行一次小的 CSS 重构并添加一些 concatClasses 看起来是很有可能的……

1 个赞

capabilities 服务有一些可能有所帮助的属性。例如:

不过值得注意的是:这个逻辑最近给我们带来了很多麻烦。我想在不久的将来,我们会用基于 CSS 媒体查询的策略来替换它。(写这篇文章的时候,我认为这些媒体查询还没有广泛可用)

6 个赞

oooh that’s a stealthy service … not seen that much in source! :male_detective:

1 个赞