Показать сообщение отдельно
  #1 (permalink)  
Старый 28.01.2019, 07:07
Кандидат Javascript-наук
Отправить личное сообщение для Retro_1477 Посмотреть профиль Найти все сообщения от Retro_1477
 
Регистрация: 14.04.2018
Сообщений: 113

Не работает swipe
Пытаюсь реализовать мобильное управление и добавил swipe жесты вверх и вниз (button3 и button4) и по какой-то причине они не работают. Подскажите, в чём проблема?

var button1 = false, //влево
  button2 = false, // вправо
  button3 = false, //прыжок 
  button4 = false; //подкат

var touchstartX = 0;
var touchstartY = 0;
var touchendX = 0;
var touchendY = 0;

var el = document.getElementsByTagName('body')[0];

el.addEventListener("touchstart", handler, false);
el.addEventListener("touchend", handleEnd, false);
el.addEventListener("touchmove", handler, false);

function handler(e) {
  touchstartX = e.pageX;
  touchstartY = e.pageY;
  button2 = !(button1 = (window.innerWidth / 2) < e.changedTouches[0].pageX);
};

function handleEnd(e) {
 // touchendX = e.screenX;
  touchendY = e.pageY;
  var touches = e.changedTouches;
  if (window.innerWidth / 2 < touches[0].pageX) {
    button1 = false;
    button2 = false;
  }
  if (window.innerWidth / 2 > touches[0].pageX) {
    button2 = false;
    button1 = false;
  }
  //swipe Up
  if (touchendY < touchstartY) {
    button3 = true;
  }
  //swipe Down
  if (touchendY > touchstartY) {
    button4 = true;
  }
};
Ответить с цитированием