jQuery touch swipe или как отследить жесты
Что такое жесты и какие они бывают:
- Swipe — пролистывание как слайд, обычно используется для открытия меню жестом, провести пальцем по экрану слева на право чтобы открылось меню.
- hold — событие долгому длинному нажатию
Для того чтобы отследить жесты как на мобильном устройстве iPhone или Android или любой другой mobile, проще всего подключить библиотеку jquery.touchSwipe.min.js. Дальше привязываем событие к нужному нам элементу:
jQuery('body').swipe({
swipe:function(event, direction, distance, duration, fingerCount, fingerData) {
console.log(direction);
}
});
Теперь мы можем дополнять наш сайт жестами.
Если нам нужно чтобы событие жест сработал в реальном времени или через определенное количество пикселей пишем такую функцию:
jQuery('body').swipe( {
swipeStatus:function(event, phase, direction, distance, duration, fingerCount, fingerData, currentDirection)
{
if (phase=="start"){
// сработает в начале swipe
}
if (phase=="end"){
//сработает через 20 пикселей то число которое выбрали в threshold
if (direction == 'left') {
//сработает при движении влево
}
if (direction == 'right') {
//сработает при движении вправо
}
if (direction == 'up') {
//сработает при движении вверх
}
if (direction == 'down') {
//сработает при движении вниз
}
},
triggerOnTouchEnd:false,
threshold:20 // сработает через 20 пикселей
});
Параметры:
event — стандартный ивент, тут можно посмотреть по какому элементу сработал скрипт
jQuery(event.target)
phase
- start — указывает начальную фазу события касания
- move — указывает на событие перемещения
- end — указывает на завершение события
- cancel — указывает на отмену события
direction
- left — указывает на передвижение влево
- right — указывает на передвижение вправо
- up — указывает на передвижение вверх
- down — указывает на передвижение вниз
- in — указывает на событие помещения в обьект
- out — указывает на событие выхода из обьекта
distance — расстояние которое пользователь пролистал
duration — продолжительность пролистывания в миллисекундах
fingerCount — количество пальцев при таче
fingerData — координаты пальцев при событии тач
currentDirection — текущее направление движения тача
Читайте также:
- Клик вне элемента — jQuery click outside
- Full page jQuery plugin scrolling
- preventDefault или как отменить переход по ссылке
- jQuery touch swipe или как отследить жесты