Opzioni di azione del tocco

Matt Gaunt

La proprietà CSS touch-action consente a uno sviluppatore di limitare il modo in cui un utente può interagire con un elemento, il che è particolarmente utile per impedire l'invio di eventi quando non è necessario.

Prima della versione 55, Chrome supportava pan-x e pan-y, che limitano lo scorrimento degli elementi in una sola direzione.

Il video seguente mostra un esempio di elemento senza un'azione di tocco definita (a sinistra), così come pan-x e pan-y (centro e destra).

Il CSS per gli screencast al centro e a destra è:

.pan-x {
    touch-action: pan-x;
}

.pan-y {
    touch-action: pan-y;
}

In Chrome 55 sono stati aggiunti pan-left, pan-right, pan-up e pan-down. Queste proprietà hanno un comportamento leggermente diverso, ma importante.

Queste proprietà obbligano l'utente ad avviare i gesti in una direzione prima che l'elemento risponda. È simile al gesto "tira per aggiornare", che risponde solo quando l'utente fa un gesto verso il basso sullo schermo.

Il seguente video mostra pan-right e pan-down, che richiedono gesti per essere posizionati da destra a sinistra e dal basso verso l'alto. Una volta iniziato il gesto, puoi effettivamente eseguire la panoramica avanti e indietro. È interessata solo la direzione iniziale.

Anche se il video mostra questo comportamento, potresti trovare più semplice provarlo personalmente consultando l'esempio.

Il codice CSS per questa demo è:

.pan-right {
    touch-action: pan-right;
}

.pan-down {
    touch-action: pan-down;
}

L'ultima novità nel mondo delle azioni tocco è la proprietà pinch-zoom. Si tratta di una nuova proprietà in Chrome 55, protetta da un flag, che può essere utilizzata con qualsiasi opzione di panoramica (ad es. pan-x, pan-y, pan-left, pan-right, pan-down, pan-up).

Se pizzichi su un sito web, in genere viene aumentato lo zoom sui contenuti delle pagine. La definizione di un touch-action impedisce questo comportamento, ma l'aggiunta del pinch-zoom lo riattiva.

Questo video mostra la differenza tra touch-action: pan-x e touch-action: pan-x pinch-zoom.

Tutte queste proprietà dovrebbero semplificare parte della logica che altrimenti dovrebbe essere implementata dagli sviluppatori che utilizzano pointer-events.