Задать вопрос

Как обрабатывать свайпы на чисто JS? Придется ли подключать библиотеки?

Такие дела.
Пока проект на чистом JS, вот приступил к мобильной версии и понял, что вообще даже не представляю как в JS с сенсорными дисплеями дела обстоят.

Помню только, что пару тройку лет назад что-то слыхал про какие-то библиотеки, но это очень смутно все.

Обычно задача решалась в лоб - гуглишь, скачиваешь слайдер и в нем уже с большой вероятностью реализован функционал под сенсорные устройства.

У меня же слайдер написан своими руками и теперь думаю что делать со свайпами?
  • Вопрос задан
  • 4046 просмотров
Подписаться 5 Оценить 2 комментария
Решения вопроса 1
@void01
подключи в проект например jQuery Mobile
api.jquerymobile.com/category/events
там есть все необходимые евенты

ну или раз ты самоделкин напиши свои обработчики, вот набросок для свайпов
handleTouchStart =function(e) {                                         
    xDown = e.touches[0].clientX;                                      
    yDown = e.touches[0].clientY;                                      
};
                                                
handleTouchMove = function(e) {
    if ( ! xDown || ! yDown ) {
        return;
    }

    var xUp = e.touches[0].clientX;                                    
    var yUp = e.touches[0].clientY;

    var xDiff = xDown - xUp;
    var yDiff = yDown - yUp;

    if(Math.abs( xDiff )+Math.abs( yDiff )>150)
      if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) {
        if ( xDiff > 0 ) 
            alert('лево');
         else 
            alert('право');                   
      } else {
        if ( yDiff > 0 ) 
            alert('вверх'); 
         else 
            alert('вниз');                                                                 
      }
    xDown = null;
    yDown = null;
};

var xDown = null;                                                        
var yDown = null;

document.addEventListener('touchstart', handleTouchStart, false);        
document.addEventListener('touchmove', handleTouchMove, false);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Loki_lo
@Loki_lo
Ответ написан
Комментировать
sabramovskikh
@sabramovskikh
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы