CSS touch-action — керування сенсорними жестами
CSS властивість touch-action визначає, які сенсорні жести браузер обробляє сам (прокрутку, зум), а які віддає обробникам подій.
Загальний опис
Це ключ до плавних жестів на мобільних. Якщо на елементі власна обробка перетягування, а браузер водночас намагається прокрутити сторінку — вийде смикання.
touch-action: none віддає всі жести скрипту. pan-y дозволяє лише вертикальну прокрутку — саме те, що треба горизонтальній каруселі.
Значення manipulation вимикає розпізнавання подвійного тапу й тим самим прибирає стару затримку 300 мс перед кліком.
- Порада
-
автор: NagarDtouch-action: manipulationна кнопках прибирає затримку кліку на мобільних — безкоштовне прискорення інтерфейсу.
Синтаксис
touch-action: auto | none | [ pan-x || pan-y ] | manipulation;
Властивість touch-action може отримувати 5 значень:
-
auto -
Усі жести обробляє браузер.
автор: NagarD -
none -
Усі жести віддаються обробникам подій.
автор: NagarD -
pan-x -
Дозволена лише горизонтальна прокрутка.
автор: NagarD -
pan-y -
Дозволена лише вертикальна прокрутка.
автор: NagarD -
manipulation -
Прокрутка і щипковий зум, без подвійного тапу.
автор: NagarD
| Значення без задання: | auto |
|---|---|
| Наслідує: | Ні |
| Анімується: | Ні |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| touch-action | 36+ | 52+ | 13+ | 23+ | 12+ | 11+ |
| Переглядач | ||||
|---|---|---|---|---|
| touch-action | 55+ | yes | yes | 13+ |
Приклади
+ запропонувати свій приклад у пісочниці
Горизонтальна карусель, яка не б'ється з вертикальною прокруткою.
HTML
<div class="carousel">
<div>Слайд 1</div>
<div>Слайд 2</div>
</div>
<button>Кнопка без затримки</button>
CSS
.carousel {
display: flex;
overflow-x: auto;
/* браузер керує лише вертикаллю, горизонталь — наша */
touch-action: pan-y;
}
button {
touch-action: manipulation;
}
Коментарі
Коментарів ще немає — будьте першим!