Как использовать поведение перетаскивания из d3js с jumpjs

Я пытаюсь управлять диаграммой параллельных координат (parcoords.js из D3js framework) с моим контроллером движения прыжка.

Таким образом, в файле parcoords.js есть функция перетаскивания, которая использует стандартное поведение перетаскивания d3js, поддерживающее касание и мышь, описанное здесь: https://github.com/mbostock/d3/wiki/Drag-Behavior.#wiki-drag

Но я пытаюсь реализовать градиентный жест скачкообразным движением, чтобы перетаскивать ось по отдельности. Чтобы решить эту проблему, мне нужно сопоставить координаты прыжка для управления мышью через javascript. Другим решением может быть вызов функции с возможностью переупорядочения, когда мой javascript обнаруживает захват. Но я не знаю, как использовать координаты прыгающего пальца для работы с поведением перетаскивания d3js.

Я надеюсь, что у кого-нибудь есть идея решить эту проблему.

Демонстрацию параллельных координат d3js можно найти здесь: http://3developers.de/parcoords/

Также есть красный квадрат, показывающий положение прыжкового пальца.

Ваш Лукас


person lrecknagel    schedule 06.03.2014    source источник


Ответы (1)


Основная проблема заключается в том, что вам нужно определить, что такое «жест перетаскивания». Вот несколько вариантов:

  • Любое движение пальца («указательное»). Поэтому, как только контроллер обнаруживает палец, начинается перетаскивание, определяемое движением пальца. Перетаскивание прекращается, когда палец покидает область, в которой он может быть обнаружен контроллером.
  • жест запускает перетаскивание. Это может быть, например, жест «нажатие экрана». Затем перетаскивание следует за движением соответствующего пальца и останавливается при повторении жеста.

Вы можете дополнительно ограничить время начала перетаскивания, потребовав, чтобы палец находился непосредственно над соответствующим элементом.

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

person Lars Kotthoff    schedule 06.03.2014
comment
Спасибо за ваш ответ, но у меня проблема в том, что с полученными данными прыжка я могу создать виртуальный указатель, как мышь, но я не могу щелкнуть что-либо или сделать нажатой мышью перетаскивание такой оси в моей визуализации. Поэтому я понятия не имею, как преобразовать мою позицию прыжка, например, в одно касание или событие перетаскивания. Может быть, мое беспокойство теперь немного яснее. - person lrecknagel; 07.03.2014
comment
На самом деле нет понятия клика. Чтобы сделать щелчок, вы можете использовать один из вариантов, которые я описал. - person Lars Kotthoff; 07.03.2014
comment
Теперь я нашел этот ответ от вас, и я думаю, что он равен тому, что я хотел бы иметь. Но я не вижу возможности передать свой 2D-массив координат LeapPointer в функцию перетаскивания моих параллельных координат из d3.js. Вот сообщение, которое я упомянул в комментарии: stackoverflow.com/questions/18798672/ - person lrecknagel; 07.03.2014
comment
Вам нужно создать события D3 с этими координатами и вызвать для них обработчик событий. Это запутанно, но, как я уже сказал, D3 не предлагает прямой поддержки такого рода взаимодействия. - person Lars Kotthoff; 07.03.2014