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
Utilizzo di CSS Scroll Snap per realizzare un carousel
Filtrare i dati in ASP.NET Core usando OpenTelemetry su Azure Monitor
Gestione delle issue type con GitHub
Le cron expression di un workflow di GitHub
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Abilitare .NET 10 su Azure App Service e Azure Functions
Eliminare record doppi in Sql Server
Gestire progetti NPM in .NET Aspire
Blazor e Static Web Assets in .NET 10
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Semplificare la gestione dei modelli con Azure AI Foundry Model Router
Raggruppamento degli aggiornamenti di dipendenze tra directory in un monorepo con Dependabot
I più letti di oggi
- ASP.NET MVC 4
- Progressive Web Apps with Blazor and Azure
- ASP.NET Core 5 & Blazor 5
- Web Camp - ASP.NET MVC 3
- Microsoft Azure: DocumentDB e Search
- Cordova, WinJS e Universal App
- WinRT: accesso ai dati e alla rete
- Community Days 2010: WebForms.Reload()
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ASP.NET Core 2




