Con Internet Explorer 10 e le (ex) Metro Style Applications, Microsoft ha intrapreso un iniziativa tesa ad uniformare la gestione di 3 differenti tipi di input: touch, pen e mouse con l'intento di facilitare la costruzione di user experience che siano indipendenti dall'hardware utilizzato. Questa iniziativa è stata raccolta con favore dal W3C che ha creato un working group dedicato:
http://blogs.msdn.com/b/ie/archive/2012/11/12/w3c-charters-pointer-events-working-group.aspx
Gli eventi messi a disposizione da Internet Eplorer 10 per catturare l'input ruotano al concetto di pointer e sono identici per qualsiasi dispositivo utilizzato: MSPointerDown, MSPointerMove, MSPointerUp, MSPointerOver, MSPointerOut.
MSPointerDown sopperisce alla mancanza di un evento usato diffusamente nello sviluppo di applicazioni HTML5 ovvero: touchstart. Una delle tecniche per ridurre il ritardo di propagazione dell'evento onClick, prevede l'impiego dell'evento touchStart, ciò si rende necessario soprattutto nelle applicazioni HTML5 che devono garantire una reattività maggiore.
Il codice di esempio illustra come testare la disponibilità di questo set di eventi e quindi sottoscrivere l'evento MSPointerDown, assimilabile al touchstart degli altri browser
function bindTouch(ctrl, handler) { if (window.navigator.msPointerEnabled) { ctrl.addEventListener("MSPointerDown", handler); } else { ctrl.addEventListener("touchstart", handler); } } bindTouch(document.getElementById('join'), function () { //... });
Esistono anche delle librerie come pointer.js che consentono di non preoccuparci della feature detection, consolidando in maniera non invasiva la modalità di sottoscrizione degli eventi pointer e gesture: http://smus.com/mouse-touch-pointer/
Per maggiori dettagli riguardo MSPointer si rimanda a questo articolo:
http://blogs.msdn.com/b/ie/archive/2011/09/20/touch-input-for-ie10-and-metro-style-apps.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Testare il failover sulle region in Azure Storage
Loggare le query più lente con Entity Framework
Montare Azure Blob Storage su Linux con BlobFuse2
Creare una libreria CSS universale: Clip-path
Ottenere un token di accesso per una GitHub App
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Migliorare l'organizzazione delle risorse con Azure Policy
La gestione della riconnessione al server di Blazor in .NET 9
Integrare un servizio esterno con .NET Aspire
Aggiornare a .NET 9 su Azure App Service
Utilizzare Locust con Azure Load Testing
I più letti di oggi
- Community Night@Basta!Italia on tour 2009 - Milano
- Windows Phone 7.1 Mango: ecco i tool in beta
- Speciale Razor: il nuovo view engine di WebMatrix e ASP.NET MVC
- Disponibile l'SDK per Windows Phone 7.8
- SQL Server 2005 in beta 2
- Codifica all'avanguardia con .NET MAUI: Scopri le potenzialità di sviluppo multi-piattaforma
- Utilizzare WebAssembly con .NET, ovunque
- Gestire la configurazione di ASP.NET Core su più ambienti
- Calcolare il resto di una divisione
- Segnala questa pagina ad un amico