Я ищу плагин drag & DROP, который работает на сенсорных устройствах.
Я бы хотел, чтобы функциональность была аналогична плагину jQuery UI, который позволяет «отбрасывать» элементы.
Jqtouch плагин поддерживает перетаскивание, но не падая.
Вот перетаскивание, которое поддерживает только iPhone / iPad.
Может ли кто-нибудь указать мне на плагин перетаскивания, который работает на android / ios?
... Или можно обновить плагин jqtouch для возможности сбрасывания, он уже работает на Andriod и IOS.
Спасибо!
Ответы:
Вы можете использовать пользовательский интерфейс Jquery для перетаскивания с дополнительной библиотекой, которая переводит события мыши в касание, что вам нужно, библиотека, которую я рекомендую, - https://github.com/furf/jquery-ui-touch-punch , с это ваше перетаскивание из пользовательского интерфейса JQuery должно работать на сенсорных устройствах
или вы можете использовать этот код, который я использую, он также преобразует события мыши в сенсорные и работает как по волшебству.
И в вашем document.ready просто вызовите функцию init ()
код найден здесь
источник
document.getElementById('draggableContainer').addEventListener(...
Для тех, кто хочет использовать это и сохранить функциональность щелчка (как упоминает Джон Ландхир в своем комментарии), вы можете сделать это всего с парой модификаций:
Добавьте пару глобалов:
Затем измените оператор switch с оригинала на это:
Вы можете настроить "клики" по своему вкусу. По сути, это просто наблюдение за «сенсорным запуском», за которым быстро следует «касание» для имитации щелчка.
источник
click
работает, а иногда нет ???Спасибо за приведенные выше коды! - Я попробовал несколько вариантов, и это был билет. У меня были проблемы с тем, что preventDefault предотвращал прокрутку на ipad - сейчас я тестирую перетаскиваемые элементы, и пока он отлично работает.
источник
У меня было то же решение, что и у gregpress answer , но мои перетаскиваемые элементы использовали класс вместо идентификатора. Вроде работает.
источник
Старый нить знаю .......
Проблема с ответом @ryuutatsuo заключается в том, что он также блокирует любой ввод или другой элемент, который должен реагировать на «щелчки» (например, вводы), поэтому я написал это решение. Это решение позволило использовать любую существующую библиотеку перетаскивания, основанную на событиях mousedown, mousemove и mouseup на любом сенсорном устройстве (или компьютере). Это тоже кроссбраузерное решение.
Я тестировал на нескольких устройствах, и он работает быстро (в сочетании с функцией перетаскивания в ThreeDubMedia (см. Также http://threedubmedia.com/code/event/drag )). Это решение jQuery, поэтому вы можете использовать его только с библиотеками jQuery. Я использовал для этого jQuery 1.5.1, потому что некоторые новые функции не работают должным образом с IE9 и выше (не тестировались с более новыми версиями jQuery).
Прежде чем добавлять к событию операцию перетаскивания или перетаскивания, необходимо сначала вызвать эту функцию :
Вы также можете заблокировать все компоненты / дочерние элементы для ввода или для ускорения обработки событий, используя следующий синтаксис:
Вот код, который я написал. Я использовал несколько хороших приемов, чтобы ускорить оценку вещей (см. Код).
Что он делает: сначала он переводит события одиночного касания в события мыши. Он проверяет, вызвано ли событие элементом на / в элементе, который нужно перетаскивать. Если это элемент ввода, такой как input, textarea и т. Д., Он пропускает перевод, или если к нему прикреплено стандартное событие мыши, оно также пропускает перевод.
Результат: все элементы перетаскиваемого элемента по-прежнему работают.
Удачного кодирования, приветц, Эрвин Хантьес
источник
simulateTouchEvents(<object>, true);
???touch
событияchrome
, я не могу прокручивать таблицу. Даже на мобильном телефоне.