В js я ищу граф, ориентированный на силу, с перетаскиваемыми узлами — щелкните узлы, чтобы открыть новую страницу.

Я пытаюсь найти некоторый пример кода, используя библиотеку javascript для принудительного графа, в котором пользователь может перемещать любой узел (и граф динамически реагирует), но тогда каждый узел можно щелкнуть и открыть страницу «детали узла» ( в другой вкладке).

Я просмотрел D3.js, arbor.js, jit (javascript infoviz toolkit), springy. Все они выглядят великолепно и имеют демоверсии, которые близки к тому, что я хочу, но не совсем там.

Я не опытный программист js, я в основном занимаюсь серверной частью.

Я боюсь, что я могу попытаться изучить одну из этих библиотек, чтобы попытаться реализовать свой вариант использования, только чтобы обнаружить, что она по какой-то причине не работает. Например, в одном из них (D3) на форуме обсуждалось, что щелчок по узлу часто ошибочно принимается за перемещение узла, и, похоже, не было быстрого обходного пути. В другом (arbor.js) главная страница (в дополнение к тому, что она минимизирована) показывает что-то близкое к тому, что я хочу, но подвижные узлы не кликабельны, а кликабельные узлы не подвижны.

FF или Chrome в порядке - мне не нужна поддержка IE.

Я также открыт для чего-то, основанного на Flash — пока мне не нужно ничего компилировать в Actionscript/Flash — что-то с API js/html.

Спасибо.


person brfox    schedule 22.08.2011    source источник
comment
Похоже на обман: stackoverflow.com/questions/7034/   -  person Tom    schedule 22.08.2011
comment
Я некоторое время изучал эту страницу и посещал множество библиотек, упомянутых перед публикацией этого вопроса. Но я все еще не знаю, кто из них будет делать этот пример - я хотел бы увидеть его демонстрацию, прежде чем тратить время на изучение новой системы. Или, возможно, кто-то может поделиться опытом, чтобы сказать, какой инструмент, по его мнению, лучше всего подойдет для этого? Кроме того, этот вопрос был от 3 лет назад.   -  person brfox    schedule 22.08.2011


Ответы (1)


Я думаю, что это довольно хороший список инструментов, которые у вас есть. Протовис?

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

Пару лет назад я сделал проект-прототип, используя чистая реализация Javascript. Все это просто узлы DOM, так что вы определенно можете получать клики по мере необходимости. Это нормально, но поскольку код активно не поддерживается (насколько мне удалось найти), мне пришлось немало потрудиться, чтобы подогнать его под свои нужды. Использование чего-то более свежего и активно разрабатываемого — хорошая идея. Я также узнал, что производительность будет проблемой, особенно в Firefox. Вы можете поиграть с моим прототипом и посмотреть, где он ломается — что он и делает. Я думаю, что 100 узлов или около того - это опасная точка.

Удачи!

person ndp    schedule 22.08.2011
comment
Да, протовис тоже отлично выглядит. Но его разработка остановилась и теперь это D3. Из чтения форума D3 (groups.google.com/group/ d3-js/browse_thread/thread/) Я думаю, что проблема с захватом клика заключается в том, что его путают с кликом-перемещением-открытием (т.е. перетаскиванием). Вот почему я хочу увидеть, как что-то работает, прежде чем пытаться это реализовать. И ваш инструмент хорош, но я думаю, что иногда мне может понадобиться 200-300 узлов. Но, спасибо за ваши комментарии. - person brfox; 22.08.2011