Su un dispositivo touch come iPhone/iPad/Android può essere difficile premere un piccolo pulsante con il dito. Non esiste un modo cross-browser per rilevare i dispositivi touch con le query multimediali CSS che conosco. Quindi controllo se il browser supporta gli eventi touch javascript.
Fino ad ora, altri browser non li hanno supportati, ma l'ultimo Google Chrome sul canale dev
enabled touch events (anche per dispositivi non touch). E sospetto che altri produttori di browser seguiranno, dal momento che i portatili con touch screen sono in arrivo
. Aggiornamento : Si è verificato un bug in Chrome, quindi ora il rilevamento JavaScript funziona di nuovo.Ottimizza sito Web per dispositivi touch
Questa è la prova che uso:
function isTouchDevice() {
return "ontouchstart" in window;
}
Il problema è che questo solo test se il browser ha il supporto per gli eventi di tocco, non il dispositivo.
Qualcuno sa del modo The Correct [tm] di offrire ai dispositivi touch una migliore esperienza utente? Altro che sniffare user agent.
Mozilla ha una query multimediale per dispositivi touch. Ma non ho visto nulla di simile in nessun altro browser: https://developer.mozilla.org/En/CSS/Media_queries#-moz-touch-enabled
Aggiornamento: Voglio evitare di utilizzare una pagina/sito separato per dispositivi mobili/touch. La soluzione deve rilevare dispositivi touch con rilevamento di oggetti o simili da JavaScript o includere un tocco personalizzato CSS senza lo sniffing di user-agent! Il motivo principale per cui ho chiesto è stato quello di verificare che non sia possibile oggi, prima di contattare il gruppo di lavoro css3. Quindi, per favore non rispondere se non puoi seguire i requisiti nella domanda;)
Chrome non è ancora arrivato quello che faranno con gli eventi touch. Discussione qui: http://code.google.com/p/chromium/issues/detail?id=36415 – gregers
Il motivo per cui vuoi sapere se un browser ha eventi di tocco è perché è difficile che l'utente tocchi un pulsante piccolo destra? Quindi, presumo tu voglia solo rendere gli elementi dell'interfaccia utente più grandi per questi dispositivi touch? –
David: Questo è corretto – gregers