Выберите пункт на долгое нажатие и touchmove для мобильного приложения - PullRequest
0 голосов
/ 24 февраля 2020

Я создаю приложение на основе Vue. js. У меня есть несколько элементов списка, и я хочу выбрать их в longPress + touchmove (mousemove), как, например, в Google Photos.

Я сделал выбор элементов, пока пользователь не достигнет нижней части области просмотра, как только достигнет Я динамически обновляю позицию прокрутки, но выбор элемента не происходит. В моем приложении overflow:auto был применен к элементу HTML, и я не хочу его менять.

После getDynamicScrollingDirection() сработает событие mouseMove, и оно дает мне значение, в каком направлении мне следует нужно прокрутить как Верх и Низ . Исходя из этого направления, сработает значение getDynamicScrollingDirection(). Во время прокрутки событие movemove не происходит в элементе списка после его прокрутки, останавливается mousemove событие, работающее.

computed: {
    getDynamicScrollingDirection() {
      const viewportHeight = window.innerHeight;
      const bottomThreshold = viewportHeight - 140;
      if (this.mousePosition.clientY < bottomThreshold) return null;
      return {
        direction: 'bottom',
      };
    },
  },
watch: {
    getDynamicScrollingDirection(value) {
      if (!value) return;
      // const htmlEle = document.querySelector('html');
      // htmlEle.scrollTop += 200;
      window.scrollTo({
        top: 100,
        left: 0,
        behavior: 'smooth'
      });
    }
  },
...