touch-action
Die touch-action
CSS Eigenschaft legt fest, wie der Bereich eines Elements von einem Touchscreen-Nutzer manipuliert werden kann (zum Beispiel durch in den Browser integrierte Zoomfunktionen).
Standardmäßig werden Scroll- und Pinch-Gesten ausschließlich vom Browser behandelt. Eine Anwendung, die Pointer Events verwendet, erhält ein pointercancel
-Ereignis, wenn der Browser mit der Verarbeitung einer Touch-Geste beginnt. Durch das explizite Festlegen, welche Gesten vom Browser gehandhabt werden sollen, kann eine Anwendung ihr eigenes Verhalten in pointermove
und pointerup
-Listenern für die verbleibenden Gesten bereitstellen. Anwendungen, die Touch Events verwenden, deaktivieren die Verarbeitung von Gesten durch den Browser, indem sie preventDefault()
aufrufen, sollten aber auch touch-action
verwenden, um sicherzustellen, dass der Browser die Absicht der Anwendung kennt, bevor Listener aufgerufen wurden.
Wenn eine Geste begonnen wird, schneidet der Browser die touch-action
-Werte des berührten Elements und seiner Vorfahren bis zu dem Element, das die Geste implementiert (also das erste übergeordnete scrollende Element) ab. Das bedeutet, dass touch-action
in der Praxis in der Regel nur auf oberste Elemente angewendet wird, die ein benutzerdefiniertes Verhalten aufweisen, ohne dass touch-action
explizit auf Nachkommen dieses Elements angegeben werden muss.
Hinweis: Nachdem eine Geste begonnen hat, haben Änderungen an touch-action
keinen Einfluss mehr auf das Verhalten der aktuellen Geste.
Syntax
/* Keyword values */
touch-action: auto;
touch-action: none;
touch-action: pan-x;
touch-action: pan-left;
touch-action: pan-right;
touch-action: pan-y;
touch-action: pan-up;
touch-action: pan-down;
touch-action: pinch-zoom;
touch-action: manipulation;
/* Global values */
touch-action: inherit;
touch-action: initial;
touch-action: revert;
touch-action: revert-layer;
touch-action: unset;
Die touch-action
Eigenschaft kann wie folgt spezifiziert werden:
- Eines der Schlüsselwörter
auto
,none
,manipulation
, oder - Eines der Schlüsselwörter
pan-x
,pan-left
,pan-right
, und/oder eines der Schlüsselwörterpan-y
,pan-up
,pan-down
, plus optional das Schlüsselwortpinch-zoom
.
Werte
auto
-
Aktivieren Sie die Behandlung aller Scroll- und Zoom-Gesten durch den Browser.
none
-
Deaktivieren Sie die Behandlung aller Scroll- und Zoom-Gesten durch den Browser.
pan-x
-
Aktivieren Sie einfingerige horizontale Scroll-Gesten. Kann mit pan-y, pan-up, pan-down und/oder pinch-zoom kombiniert werden.
pan-y
-
Aktivieren Sie einfingerige vertikale Scroll-Gesten. Kann mit pan-x, pan-left, pan-right und/oder pinch-zoom kombiniert werden.
manipulation
-
Aktivieren Sie Scroll- und Pinch-Zoom-Gesten, deaktivieren Sie jedoch zusätzliche nicht standardisierte Gesten wie Doppeltipp zum Zoomen. Das Deaktivieren von Doppeltipp zum Zoomen beseitigt die Notwendigkeit für Browser, die Erzeugung von click-Ereignissen zu verzögern, wenn der Nutzer auf den Bildschirm tippt. Dies ist ein Alias für "pan-x pan-y pinch-zoom" (was aus Kompatibilitätsgründen weiterhin gültig ist).
pan-left
,pan-right
,pan-up
,pan-down
-
Aktivieren Sie einfingerige Gesten, die beim Scrollen in die angegebene(n) Richtung(en) beginnen. Sobald das Scrollen begonnen hat, kann die Richtung noch umgekehrt werden. Beachten Sie, dass Scrollen "nach oben" (pan-up) bedeutet, dass der Benutzer seinen Finger nach unten auf der Bildschirmoberfläche zieht, und ebenso bedeutet pan-left, dass der Benutzer seinen Finger nach rechts zieht. Mehrere Richtungen können kombiniert werden, außer wenn es eine einfachere Darstellung gibt (zum Beispiel ist "pan-left pan-right" ungültig, da "pan-x" einfacher ist, aber "pan-left pan-down" ist gültig).
pinch-zoom
-
Aktivieren Sie mehrfingriges Scrollen und Zoomen der Seite. Dies kann mit jedem der pan- Werte kombiniert werden.
Barrierefreiheit
Eine Deklaration von touch-action: none;
könnte die Zoom-Möglichkeiten eines Browsers behindern. Dies verhindert, dass Menschen mit Sehschwäche in der Lage sind, den Seiteninhalt zu lesen und zu verstehen.
Formale Definition
Initialer Wert | auto |
---|---|
Anwendbar auf | alle Elemente außer: nicht ersetzte Inlineelemente, Tabellenzeilen, Zeilengruppen, Tabellenspalten und Spaltengruppen |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | Not animatable |
Formale Syntax
Beispiele
Deaktivieren aller Gesten
Die häufigste Verwendung besteht darin, alle Gesten auf einem Element (und seinen nicht scrollbaren Nachkommen) zu deaktivieren, das sein eigenes Zieh- und Zoomverhalten bietet – wie eine Karte oder eine Spieleoberfläche.
HTML
<div id="map"></div>
CSS
#map {
height: 150vh;
width: 70vw;
background: linear-gradient(blue, green);
touch-action: none;
}
Ergebnis
Spezifikationen
Specification |
---|
Compatibility Standard # touch-action |
Pointer Events # the-touch-action-css-property |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
pointer-events
- Pointer Events
- WebKit Blog Mehr reaktionsschnelles Tippen auf iOS
- Google Developers Blog Standardmäßig schnelles Touch-Scrolling
- Scroll Snap