¿Puedo determinar si algo es un dispositivo táctil?

… ¿en Javascript?

Y no me refiero a móvil, me refiero a cualquier dispositivo, por ejemplo, un dispositivo táctil como una tablet, donde el hover no tiene sentido.

¿O estoy obligado a usar CSS?

1 me gusta

Una cosa complicada a tener en cuenta son los portátiles con pantallas táctiles. En ese caso, la interacción principal tiende a ser a través de un ratón… aunque el dispositivo técnicamente tenga una pantalla táctil. Eso nos ha causado algunos dolores de cabeza recientemente con las reacciones :sweat_smile:

Pero para responder a tu pregunta específica: creo que las consultas de medios CSS son el camino a seguir. Tenemos hover, pointer, any-hover y any-pointer.

Y luego puedes ejecutar esas consultas de medios CSS desde JS usando window.matchMedia de esta manera:

4 Me gusta

Sí, buen punto y buena sugerencia.

Estaba intentando usar la configuración del tema para determinar cuándo deberían aparecer algunas extractos sobre una imagen que normalmente solo se muestra al pasar el ratón por encima.

En mi caso, las opciones serían:

  • Siempre activado
  • Solo en dispositivos táctiles (porque el pasar el ratón por encima no está realmente disponible en tabletas/teléfonos)
  • Solo al pasar el ratón por encima (caso normal)

Reconocer los dispositivos táctiles podría no ser un desastre en este caso :sweat_smile:

Solo esperaba que hubiera algún atributo directo del sitio que me hubiera perdido, pero investigaré tu sugerencia. Sin embargo, parece probable una mini refactorización de CSS con algunas concatClasses

1 me gusta

El servicio capabilities tiene algunas propiedades que podrían ayudar. Por ejemplo:

Aunque vale la pena señalar: esta lógica es lo que nos causó dolores de cabeza recientemente. Me imagino que la reemplazaremos con la estrategia basada en consultas de medios CSS en un futuro no muy lejano. (Cuando se escribió esto, no creo que esas consultas de medios estuvieran ampliamente disponibles).

6 Me gusta

oooh ese es un servicio sigiloso… ¡no se ve mucho en el código fuente! :male_detective:

1 me gusta