Задать вопрос
kirillbelash93
@kirillbelash93
Сертифицированный сыч

Возможно ли включить сортировку во время touchstart?

Суть задачи, есть список sortable, реально ли запускать сортировку пока мы держим палец и выполняется событие touchstart? Например библиотека sortable.js не стартует если зажать и держать палец. Понятно, что поток заблочен событием, но как выбить вне потока и начать сортировку?
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
grantur5707
@grantur5707
Full Stack Web Developer
Вместо того чтобы полностью полагаться на touchstart, используйте его для начала подготовки, но инициализируйте сортировку с помощью других событий, например touchmove. При этом стоит ограничить область touchmove, чтобы сортировка не начиналась до явного движения пальцем. Также нужно вручную инициировать сортировку.

var sortable = new Sortable(listElement, {
    animation: 150,
    onStart: function (evt) {
        console.log('Начало сортировки');
    }
});

listElement.addEventListener('touchstart', function (e) {
    var touch = e.touches[0];
    var targetElement = document.elementFromPoint(touch.clientX, touch.clientY);

    sortable._onDragStart({
        target: targetElement,
        clientX: touch.clientX,
        clientY: touch.clientY,
        type: 'touchstart'
    });
}, false);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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