Не работает drag and drop на айфонах

html

<div class="container_word">
    <div class="word">
      <div class="word_place" data-num="0"></div>
      <div class="word_place" data-num="1"></div>
      <div class="word_place" data-num="2"></div>
      <div class="word_place" data-num="3"></div>
      <div class="word_place" data-num="4"></div>
    </div>
    <div class="letters">
      <img src ="./img/k.svg" class="letter letter1" data-num2="2">
      <img src ="./img/e.svg" class="letter letter2" data-num2="3">
      <img src ="./img/p.svg" class="letter letter3" data-num2="0">
      <img src ="./img/a.svg" class="letter letter4" data-num2="1">
      <img src ="./img/t.svg" class="letter letter5" data-num2="4">
    </div>
    <div class="banner5">Game Over</div>
  </div>

это js к нему

let wrapper = document.querySelector('.container_word');
let empty = document.querySelectorAll('.word_place');
let drag = document.querySelectorAll('.letter');
let boxDrag = document.querySelector('.letters');


for (i = 0; i < drag.length; i++) {
  drag[i].addEventListener('touchmove', dragMove);
}

for (j = 0; j < drag.length; j++) {
  drag[j].addEventListener('touchend', dragDrop);
}

let itemAppend;

function dragMove(event) {
  event.preventDefault();

  let drag = this;

  let touch = event.targetTouches[0];
  drag.style.top = `${touch.pageY - wrapper.offsetTop - 20}.px`;
  drag.style.left = `${touch.pageX - wrapper.offsetLeft - 20}.px`;

  empty.forEach(item => {
    if (drag.getBoundingClientRect().top + 20 < item.getBoundingClientRect().bottom &&
      drag.getBoundingClientRect().right - 20 > item.getBoundingClientRect().left &&
      drag.getBoundingClientRect().bottom - 20 > item.getBoundingClientRect().top &&
      drag.getBoundingClientRect().left + 20 < item.getBoundingClientRect().right && drag.getAttribute('data-num2') == item.getAttribute('data-num')) {
      item.classList.add('active');
      itemAppend = item;
    }
    else {
      item.classList.remove('active');
    }

  })
}

function dragDrop() {
  if (itemAppend && itemAppend.classList.contains('active')) {
    itemAppend.append(this);
    this.style.top = `${itemAppend.offsetTop + 13}px`;
    this.style.left = `${itemAppend.offsetLeft + 8}px`;
    empty.forEach(elem => {
      elem.classList.remove('active');
    })
    gameEnd();
  }
  else {
    this.style.top = 'inherit';
    if (this.getAttribute('data-num2') == 2) {
      this.style.bottom = '80px';
      this.style.left = '30px';
    }
    if (this.getAttribute('data-num2') == 0) {
      this.style.bottom = '80px';
      this.style.right = '35px';
      this.style.left = 'inherit'
    }
    if (this.getAttribute('data-num2') == 1) {
      this.style.bottom = '10px';
      this.style.left = '25%';
    }
    if (this.getAttribute('data-num2') == 3) {
      this.style.bottom = '100px';
      this.style.left = '40%';
    }
    if (this.getAttribute('data-num2') == 4) {
      this.style.bottom = '15px';
      this.style.right = '24%';
      this.style.left = 'inherit'
    }
  }
}

function gameEnd(){
  let k = document.querySelector('.letter1');
  let e = document.querySelector('.letter2');
  let p = document.querySelector('.letter3');
  let a = document.querySelector('.letter4');
  let t = document.querySelector('.letter5');

  if(k.parentNode.classList.contains('word_place') &&
     e.parentNode.classList.contains('word_place') &&
     p.parentNode.classList.contains('word_place') &&
     a.parentNode.classList.contains('word_place') &&
     t.parentNode.classList.contains('word_place') ){
      let banner = document.querySelector('.banner5');
      banner.classList.add('active');
     }

}

Ответы (0 шт):