Пытаюсь реализовать мобильное управление и добавил 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;
  }
};