Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

touch-action CSS property

Baseline Weitgehend verfügbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2019 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Die touch-action-Eigenschaft CSS legt fest, wie der Bereich eines Elements von einem Benutzer mit Touchscreen manipulierbar ist (z.B. durch im Browser integrierte Zoom-Funktionen).

Standardmäßig werden Scroll- und Pinch-Gesten ausschließlich vom Browser verarbeitet. Eine Anwendung, die Zeigerereignisse verwendet, erhält ein pointercancel-Ereignis, wenn der Browser beginnt, eine Touch-Geste zu verarbeiten. Indem explizit festgelegt wird, welche Gesten vom Browser verarbeitet werden sollen, kann eine Anwendung in den pointermove- und pointerup-Listenern eigenes Verhalten für die verbleibenden Gesten bereitstellen. Anwendungen, die Touch-Ereignisse verwenden, deaktivieren die Verarbeitung von Gesten durch den Browser, indem sie preventDefault() aufrufen, sollten jedoch auch touch-action verwenden, um sicherzustellen, dass der Browser die Absicht der Anwendung kennt, bevor irgendwelche Ereignis-Listener aufgerufen wurden.

Wenn eine Geste beginnt, schneidet der Browser die touch-action-Werte des berührten Elements und seiner Vorfahren bis zu dem Element, das die Geste implementiert, d.h. dem ersten enthaltenden scrollbaren Element, ab. Dies bedeutet, dass touch-action in der Praxis typischerweise nur auf oberste Elemente angewendet wird, die ein benutzerdefiniertes Verhalten haben, ohne dass touch-action explizit auf die Nachfolger dieser Elemente angewendet werden muss.

Hinweis: Nach Beginn einer Geste haben Änderungen an touch-action keinen Einfluss mehr auf das Verhalten der aktuellen Geste.

Syntax

css
/* 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 entweder wie folgt angegeben 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örter pan-y, pan-up, pan-down, plus optional das Schlüsselwort pinch-zoom.

Werte

auto

Ermöglicht die Verarbeitung aller Scroll- und Zoom-Gesten durch den Browser.

none

Deaktiviert die Verarbeitung aller Scroll- und Zoom-Gesten durch den Browser.

pan-x

Aktiviert Ein-Finger-horizontale-Scroll-Gesten. Kann mit pan-y, pan-up, pan-down und/oder pinch-zoom kombiniert werden.

pan-y

Aktiviert Ein-Finger-vertikale-Scroll-Gesten. Kann mit pan-x, pan-left, pan-right und/oder pinch-zoom kombiniert werden.

manipulation

Aktiviert Scroll- und Pinch-Zoom-Gesten, deaktiviert jedoch zusätzliche nicht standardisierte Gesten wie Doppeltippen zum Zoomen. Das Deaktivieren des Doppeltippens zum Zoomen beseitigt die Notwendigkeit für Browser, die Erzeugung von click-Events zu verzögern, wenn der Benutzer den Bildschirm antippt. Dies ist ein Alias für "pan-x pan-y pinch-zoom" (was aus Kompatibilitätsgründen selbst weiterhin gültig ist).

pan-left, pan-right, pan-up, pan-down

Aktiviert Ein-Finger-Gesten, die mit dem Scrollen in die angegebene(n) Richtung(en) beginnen. Sobald das Scrollen begonnen hat, kann die Richtung dennoch 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, es sei denn, es gibt eine einfachere Darstellung (zum Beispiel ist "pan-left pan-right" ungültig, da "pan-x" einfacher ist, aber "pan-left pan-down" ist gültig).

pinch-zoom

Aktiviert Mehrfinger-Scroll- und Zoom-Gesten der Seite. Dies kann mit allen pan- Werten kombiniert werden.

Barrierefreiheit

Eine Erklärung von touch-action: none; kann die Bedienung der Zoom-Funktionen eines Browsers behindern. Dadurch können Personen mit Sehbehinderungen möglicherweise den Inhalt der Seite nicht lesen und verstehen.

Formale Definition

Anfangswertauto
Anwendbar aufalle Elemente außer: nicht ersetzte Inlineelemente, Tabellenzeilen, Zeilengruppen, Tabellenspalten und Spaltengruppen
VererbtNein
Berechneter Wertwie angegeben
AnimationstypNot animatable

Formale Syntax

touch-action = 
auto |
none |
[ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] |
manipulation
Diese Syntax spiegelt den neuesten Standard gemäß Compatibility wider. Möglicherweise haben nicht alle Browser jeden Teil implementiert. Siehe Browserkompatibilität für Informationen zur Unterstützung.

Beispiele

Deaktivieren aller Gesten

Die häufigste Verwendung ist das Deaktivieren aller Gesten auf einem Element (und dessen nicht scrollbaren Nachfolgern), das sein eigenes Zieh- und Zoomverhalten bereitstellt – wie eine Karte oder Spielfläche.

HTML

html
<div id="map"></div>

CSS

css
#map {
  height: 150vh;
  width: 70vw;
  background: linear-gradient(blue, green);
  touch-action: none;
}

Ergebnis

Spezifikationen

Spezifikation
Compatibility
# touch-action
Pointer Events
# the-touch-action-css-property

Browser-Kompatibilität

Siehe auch