В настоящее время я использую Raphaël JS (открыт для перехода на jQuery SVG) и jQuery UI, чтобы попытаться создать прототип настольной игры. Это несколько похоже на Risk в том смысле, что доска - это карта, и вы можете (надеюсь, скоро) перетащить фигуры из одной зоны на карте в другую (скажем, от A до B) и поместить их туда. После удаления он вызывает обратный вызов для выполнения некоторой работы.
Прямо сейчас я застрял, пытаясь получить функциональность перетаскивания. Я хочу перетащить элемент html (div) и поместить его в элемент SVG. Я не очень знаком с SVG, но из того, что я понимаю, есть проблемы, которые нужно преодолеть, чтобы заставить HTML и SVG DOM работать вместе.
У меня есть две версии, и я пытаюсь заставить пользовательский интерфейс jQuery перетаскивать их на любую из них. Один использует jQuery SVG с плагином svgdom + jQuery UI, а другой - просто Raphaël + jQuery UI. Похоже, ни один из них не запускает событие выпадения. Насколько я знаю, версия Raphaël не работает, потому что манипуляция dom в jQuery не может взаимодействовать с dom SVG.
JS Fiddle jQuery SVG: http://jsfiddle.net/cqMUL/5/ (вам придется прокрутить далеко вниз, чтобы увидеть элементы SVG, мои извинения).
Другие возможные решения:
a) Использование Raphaël со встроенными функциями drag
и onDragOver
, хотя тогда я использую все SVG и пытаюсь использовать HTML-дом для движущихся частей, потому что они будут изображениями ( div с фоновым изображением). Кроме того, я, вероятно, должен был бы сам реализовать drop.
b) Попытка использовать перетаскивание HTML5, хотя я не уверен, что это также будет работать.