Posso accertarmi se qualcosa è un dispositivo touch

… in Javascript?

E non intendo mobile, intendo qualsiasi dispositivo, ad esempio un dispositivo touch come un tablet, dove il passaggio del mouse non ha senso.

O sono costretto a usare CSS?

1 Mi Piace

Una cosa complicata da considerare sono i laptop con touchscreen. In quel caso, l’interazione principale tende ad essere tramite un mouse… anche se il dispositivo ha tecnicamente uno schermo touch. Questo ci ha causato qualche grattacapo di recente con le reazioni :sweat_smile:

Ma per rispondere alla tua domanda specifica: penso che le query multimediali CSS siano la strada da percorrere. Abbiamo hover, pointer, any-hover e any-pointer.

E poi puoi eseguire quelle query multimediali CSS da JS usando window.matchMedia in questo modo:

4 Mi Piace

sì, buon punto e bel suggerimento.

Stavo cercando di usare le impostazioni del tema per determinare quando alcuni estratti dovrebbero apparire sopra un’immagine che normalmente viene mostrata solo al passaggio del mouse.

Nel mio caso, le opzioni sarebbero:

  • sempre attivo
  • solo su dispositivi touch (perché il passaggio del mouse non è realmente disponibile su tablet/telefoni)
  • solo al passaggio del mouse (caso normale)

Riconoscere i dispositivi touch potrebbe non essere un disastro in questo caso :sweat_smile:

Speravo solo che ci fosse un attributo diretto del sito che mi fossi perso, ma esaminerò il tuo suggerimento. Un mini refactoring CSS con alcune classi concatenate sembra probabile…

1 Mi Piace

Il servizio capabilities ha alcune proprietà che potrebbero essere utili. Ad esempio:

Anche se vale la pena notare: questa logica è ciò che ci ha causato grattacapi di recente. Immagino che la sostituiremo con la strategia basata su css-media-query in un futuro non troppo lontano. (quando è stato scritto questo, non credo che quelle media query fossero ampiamente disponibili)

6 Mi Piace

oooh, è un servizio furtivo… non l’ho visto molto nel sorgente! :detective_male:

1 Mi Piace