- Määrake qué gestos maneja el navegador: desplazamiento, pellizco-zoom y doble toque.
- Kombina väärtusi (pan-x/pan-y/pan-*) y pinch-zoom või usa el atajo manipuleerimine.
- Atención accesibilidad: evitar bloquear el zoom salvo necesidad real.
- Ühilduvad amplia; iOS Safari esitleb tõelist riistvara, prueba ja riistvara.
Cuando trabajamos con interfaces táctiles, hay un detaille que marca la diferencia entre una experiencia fluida y otra frustrant: decidir qué gestos gestiona el navegador y cuáles gestiona tu códigoCSS-i omandiõigus touch-action es justo el interruptor fino que permite ajustar ese comportamiento al milímetro.
Tunned end esoteerilisena, touch-action controla el desplazamiento, el zoom por pellizco y otros gestos predeterminados que el navegador aplicaría al tocar un elemento. Bien usada, evita retrasos en eventos, choca menos con tu JavaScript y te da control real en componentes como mapas, carruseles o lienzos de juegos.
¿Qué es täpne puutetundlik tegevus?
En pocas palabras, touch-action indica al agente de usuario qué acciones táctiles puede ejecutar de forma nativa en una región de la página y cuáles debe reservar para tus manejadores de eventos. Es el komplemento táctil de pointer-events, que solemos asociar más a interacciones con ratón, pero con un enfoque específico en gestos como el desplazamiento y el zoom.
Sel viisil puedes lubair que el navegador haga su trabajo (desplazar, hacer zoom) o bloquearlo para implementar tú las interacciones (por ejemplo, zoom interno de un mapa) sin interferencias ni demoras mesterségeses en los click.

Süntaks ja kasutusvormid
La propiedad acepta varias combinaciones con reglas muy concretas. Puedes declarar un único valor, o componer varios valores compatibles para ajustar el comportamiento táctil con precisión.
/* Declaración típica */
#elemento {
touch-action: pan-right pinch-zoom;
}
Si necesitas la grammática specifica, esta es la sintaxis formal reconocida :
touch-action =
auto |
none |
|| || pinch-zoom ] |
manipulation
Teisisõnu, puedes usar uno de los valores globales (automaatne, puudub, manipuleerimine) o bien una combinación de los conjuntos de desplazamiento horisontaalne y/o vertikaalne, rohkem pinch-zoom valikuliselt.
Valores de touch-action y qué hace cada uno
Esta propiedad ofrece valores pensados para casos muy concretos. Elegir el que toca evita tener que reimplementar gestos con JavaScript o, al contrario, te deja vía libre para hacerlo cuando lo necesites.
auto-
Deja que el navegador gestione todos los gestos de desplazamiento y zoom . Es el comportamiento por defecto: el usuario puede deslizar para desplazarse y pellizcar para ampliar sin que tengas que hacer nada más.
none-
Bloquea por completo la intervención del navegador en esos gestos. No habrá desplazamiento ni pellizco-zoom nativos ; te tocará implementarlos con JavaScript si quieres ese Comportamiento. Es ideaalne para mapas o lienzos donde el control debe ser 100% tuyo.
manipulation-
Luba desplazamiento y el pellizco-zoom, pero desactiva ciertos gestos no estándar como el doble toque para ampliar. Es, en la práctica, un alias de "pan-x pan-y näpuotsaga suumimine" (la combinación explícita se mantiene válida por compatibilidad). Al quitar el doble toque, también elimina la necesidad de retrasar la generación de eventos
clicktras un toque, lo que mejora la respuesta de la interfaz. pan-x-
Activa el desplazamiento horisontaalselt koos soolo dedoVõib kombineerida
pan-y,pan-up,pan-downja / võipinch-zoomSee on atajo que englobapan-leftypan-right. pan-y-
Activa el desplazamiento vertical con un soolo dedoVõib kombineerida
pan-x,pan-left,pan-rightja / võipinch-zoom. Del mismo modo, es un atajo que incluyepan-upypan-down. pan-left,pan-right,pan-up,pan-down-
Permiten gestos de desplazamiento con un soolo dedo que empiezan en la dirección indicada . Ojo: una vez iniciado el desplazamiento, se puede invertir la dirección . Hay un detalle que suele confundir: en términos de interfaz, " pan-up " significa que el usuario arrastra el dedo hacia abajo en la pantalla para que el contenido se mueva hacia arriba; y " pan-left " tähendab arrastrar el dedo a la derecha para que el contenido se desplace hacia la izquierda.
pinch-zoom-
Luba gestos multi-dedo de zoom y desplazamiento. See puede combinar con cualquiera de los valores
pan-*. En navegadores que lo implementan, el agente de usuario puede algus el zoom continuo de inmediato sin esperar a que un manejador de eventos lo cancele.
Reglas de combinación y normalización
Al combinar direcciones, eksisteerinud reglas de simplificación. No todo lo que se puede escribir es válido si hay una forma más simpleNäiteks, "pan-left pan-right" se regarda inválido porque la forma correcta y más corta es pan-x.
Patuembargo, hay combinaciones que sí tienen sentido, como "pan-left pan-down" para lubair desplazamientos que inician hacia la izquierda o hacia abajo. En este caso, no hay una abreviatura directa equale, por lo que es una combinación Aceptable.
Pea ka seda meeles puedes mezclar ejes y pellizcoNäiteks, "pan-x pinch-zoom" luba desplazamiento horisontaalselt por un dedo y zoom multi-dedo a la vez, dejando fuera el desplazamiento vertical nativo.
Cuándo usar cada valor: patrones reales
El caso típico es un mapa o un lienzo de juego embebido en la página. Si quieres que el gesto de pellizcar afecte al propio mapa y no al zoom del navegador, te huvi kuulutate touch-action: none; y escribir tu suumi isikupärastamine ja JavaScript.
Otro escenario es cuando tu código sólo implementa una parte de la interacción (por ejemplo, el zoom), y prefieres que el navegador mantenga el desplazamiento nativo. En ese caso "touch-action: pan-x pan-y;" le dice al agente de usuario que gestione todo el desplazamiento y te deja libre para ocuparte del zoom como quieras.
Para komponentes de UI como carruseles horizontales, pan-x parim valik. Permites el desplazamiento lateral con un dedo, mantienes el pellizco-zoom desactivado si no lo añades, y evitas konfliktos con el el kerimine vertikaalselt de la página si no quieres que se aktiivne.
Kui teie prioriteet on respuesta inmediata del toque y la eliminación del retardo del doble toque, manipulation es un atajo estupendo. Quita el doble tap para ampliar y con ello la necesidad de retrasar el click, lo que da una sensación de "snappiness" en botones y enlaces.
Juurdepääsetavuse mõju
Kriitikapunkt: si deklareerib touch-action: none; bloqueas el zoom nativo del navegador. Las personas con baja visión que necesitan ampliar para leer perderán esa capacidad, lo que puede convertir tu interfaz en unaccesible.
Cuando el konteksti lo lubada, kaalutlema pinch-zoom lubatud või otsida ligipääsetavuse alternatiivid que no impidan el aumento. Hacer zoom es, para muchos usuarios, una herramienta de lectura esencial; no la desactives a la ligera.
Ühilduv entre navegadores
Toetus touch-action see on küll tugev, aga sõpradega. Los navegadores modernos como Chrome (36+), Edge (12+), Firefox (52+) ja Opera (23+) implementan la propiedad con los valores Principles.
Safari ajalooline delikatess. iOS Safari esitleb piiranguid, mis on mõeldud parajaks auto y manipulation, mientras que otros valores han sido más muutujaid según version y contexto. En versiones recientes de Safari de escritorio (13+), la compatibilidad es notablemente mejor, aga conviene validar casos específicos, sobre todo si dependes de combinaciones avanzadas.
Las tablas de compatibilidad públicas (las típicas que consultamos a diario) se aktualizan con contribuciones de la comunidad y estadísticas de uso ; si tu proyecto es sensible a gestos concretos, prueba en dispositivos reales. Ten en cuenta también que solo en dispositivos con pantalla táctil podrás verificar el comportamiento de forma fidedigna.
Praktilised kasutusnäited
Veamos algunos patrones de declaración que te solucionarán la vida. Recuerda probar siempre en hardware táctil para comprobar que la experiencia es la esperada.
1) Desaktiveerige todos los gestos (personaliseeritud kaart või lõuend)
Útil cuando quieres implementar tú el arrastre y el zoom internos sin interferencias. El navegador no interceptará ni el desplazamiento ni el pellizco.
<!-- HTML -->
<div id='mapa' class='superficie'></div>
<!-- CSS -->
.superficie {
touch-action: none;
}
2) Permitir desplazamiento nativo, kontrollar soolo el zoom
Si tu JavaScript se encarga del zoom, deja que el navegador gestione el scroll en ambos ejes para no reinventar la rueda.
.zoom-personalizado {
touch-action: pan-x pan-y;
}
3) Desplazamiento horisontaalselt koos pellizco-suumiga
Para carruseles complejos o galerías: kerige horisontaalselt con un dedo y zoom con dos , sin kerige vertikaalselt nativo.
.galeria-avanzada {
touch-action: pan-x pinch-zoom;
}
4) Desplazamientos por dirección inicial
En ocasiones conviene lubair soolo gestos que arrancan hacia una dirección concreta (p. ej., para no interferir con otros komponentes).
.panel-contextual {
touch-action: pan-left pan-down;
}
5) Atajo pragmático: manipuleerimine
Cuando buscas una respuesta táctil contundente sin doble toque, manipulation es un grand comodín. Ayuda a evitar el retraso del click järeltoque.
button, a {
touch-action: manipulation;
}
Suhe pointer-events ja klikkimisüritused
Kuigi nad on vahel segaduses, touch-action y pointer-events Atakani probleemid erinevad. El segundo Decision si un elemento responsee a "punteros" (ratón, táctil, lápiz) a nivel de hit-testing; el primero determina qué gestos táctiles por defecto puede ejecutar el navegador selles piirkonnas.
Lisaks sellele desaktivar gestos como el doble toque con manipulation elimina el retraso clásico del click tras un toque en móviles. Ese retardo existía para distinguir entre un toque simple y el inicio de un doble toque para zoom; si el doble toque ya no eksisteeri, el navegador puede despachar el click ootamata
Notas y detalles de implementación
koos pinch-zoom, heina navigaatorid, mida algatusel zoom continuo inmediatamente sin esperar a que intentes cancelar la acción por JavaScript. Este Comportamiento favorece kohene tunne en el gesto de pellizco sobre elementos que lo permiten.
También debes saber que, aun cuando restringes la dirección que inicia un desplazamiento, el usuario podrá invertir la dirección una vez iniciado el scroll . Esto alinea la experiencia con lo que la gente espera de una lista o un lienzo, y evita bloqueos artistes a mitad del gesto.
Hea tava
Primero, aplica la regla de mínima intervención: elige el valor menos limitivo que resuelva tu casoSi te basta con pan-x, pole kasutusvõimalusi none. Así preservas gestos nativos y accesibilidad.
Segundo, en Componentes complejos prueba ja päris riistvara: lo que parece óptimo con el emulador puede no reflejar la inercia y la fricción reales. Las sensaciones táctiles son sutiles, y pequeños cambios en touch-action seda ei märgata.
Tercero, si bloqueas el zoom por necesidades del producto, ofrece alternativas de accesibilidad (controles de tamaño de texto, zoom interno claro, kontraste adecuado). Privar del zoom sin alternativa perjudica la lectura.
Cuarto, documenta y acuerda el comportamiento con el equipo: marcar contratos claros entre CSS y JavaScript evita konfliktos, sobre todo cuando hay listeners que cancelan eventos o librerías de gestos de por medio.
Klassid utilitarias en frameworks
Muchos frameworks de utilidades ofrecen klassid, mis on seotud kaardiga 1:1 a touch-action, lo cual acelera prototipado y cambios. Es habitual encontrar variantes como touch-auto, touch-none, touch-pan-x o touch-pan-y.
<div class='h-48 w-full touch-auto overflow-auto'>
<img class='h-auto w- max-w-none' src='...' alt=''>
</div>
<div class='h-48 w-full touch-none overflow-auto'>
<img class='h-auto w- max-w-none' src='...' alt=''>
</div>
<div class='h-48 w-full touch-pan-x overflow-auto'>
<img class='h-auto w- max-w-none' src='...' alt=''>
</div>
<div class='h-48 w-full touch-pan-y overflow-auto'>
<img class='h-auto w- max-w-none' src='...' alt=''>
</div>
Estas utilidades ayudan a mantener el CSS limpio y coherente; recuerda que bajo el capó siguen siendo valores de touch-action, con las mismas reglas de combinación y efectos.
Testimine ja silumine
Para verificar el efecto, lo ideal es un dispositivo táctil. Algunos navegadores ofrecen emulación táctil en sus DevTools , aga no reproducen a la perfección la física del gesto ni los minevikuiples dedos simultáneos.
Si algo ei reageeri, vaata prioriteedid üle: ¿el elemento realmente recibe los eventos? ¿hay kuulajad que cancelan por preventDefault()? kinnitada computed style de touch-action y chequear superposiciones con pointer-events säästab tunde.
Kopeerimiseks mõeldud fragmendid nimekirjas
Unos cuantos atajos útiles para el día a día. Úsalos como base y ajústalos a tu caso.
/* Desactiva todo (señal de: me ocupo yo por JS) */
.superficie { touch-action: none; }
/* Solo desplazamiento horizontal */
.carrusel { touch-action: pan-x; }
/* Solo desplazamiento vertical */
.lista { touch-action: pan-y; }
/* Inicios hacia derecha + hacia arriba */
.panel { touch-action: pan-right pan-up; }
/* Pellizco-zoom + desplazamiento en cualquier eje (sin doble tap) */
.interactivo { touch-action: manipulation; }
Spetsiifilised abimärkused
Minevikus, väärtus pinch-zoom se popularizó con soporte en Chrome a partir de la version 56, y su comportamiento ha ido refinándose. En plataformas donde el pellizco sea una acción de sistema, verifica que tu app no entra en konflikto con SO liigutused (por ejemplo, gestos de navegación por bordes).
Si tu público objetivo hõlmab iOS-i, taaskasutamist: las combinaciones avanzadas pueden no komportarse igual que en Chromium . Las pruebas cruzadas son obligatorias cuando basas la UX en direcciones iniciales o en bloquear el doble toque.
Sintaxis resumida ja vaimsed mudelid
Una manera de no equivocarte es pensar en capas. Primero eliges el eje o las direcciones lubaidas (pan-x, pan-y, pan-left jne); después otsustab si añades pinch-zoom; y, si lo tuyo es la rapidez, te kasutate manipulation otseteena tüüpiline kahekordse kaelakeeta.
Lihtsustamata jätke: si tu combinación se puede escribir con un atajo, usa el atajo. Es loetav y evita valores inválidos (el clásico "pan-left pan-right" que debería ser pan-x).
Plantilla de estilos para proyectos
Este bloque suele encajar en design systems y librerías de komponentes. Defineerige utilidades en tu CSS para usos frecuentes y tendrás coherencia entre equipos.
/* Utilidades corporativas */
.u-touch-auto { touch-action: auto; }
.u-touch-none { touch-action: none; }
.u-touch-pan-x { touch-action: pan-x; }
.u-touch-pan-y { touch-action: pan-y; }
.u-touch-zoom { touch-action: pinch-zoom; }
.u-touch-sensible { touch-action: manipulation; }
Con estas klassid, documentas la intención (por ejemplo, "mõistlik" implicando respuesta ágil) en lugar de un detalle técnico aislado, lo que facilita la adopción por parte de otros desarrolladores.
Pequeño kontrollnimekiri antes de publicar
– Kas escogido el valor menos intrusivo que cumple tu objetivo? Si algo puede ser nativo, déjalo nativo.
– Kas rakendus on suumiga kasutatav? No sacrifiques accesibilidad si no es imprescindible.
– Kas iOS-i ja Androidi vahel on komprobad? La emulación es útil, pero no definitiva.
– ¿Los listeners no interfieren con el Comportamiento esperado? Evita tühistamised globaalselt.
On selge, et touch-action es una palanca esencial para afinar la experiencia táctil: te permite delimitar qué gestos son nativos y cuáles controlas tú, vähendada latenciat como la del click tras el toque, y ofrece combinaciones ricas para casos avanzados; si a eso sumas pruebas en dispositivos reales y un ojo en accesibilidad, tendrás Componentes táctiles que se sienten naturales y fiables.