2012-06-05 4 views
22

Ejemplo en un gráfico directa fuerza se puede encontrar aquí: http://bl.ocks.org/950642fuerza D3 gráfico dirigido con el apoyo de arrastrar y soltar a hacer cargo nodo seleccionado fija cuando se deja caer

Como puedo agregar fácilmente soporte para arrastrar y soltar? Debe establecer el nodo a fijo con la ubicación actual de donde lo dejó caer. Es importante que el descanso de los nodos sigue utilizando el 'modo de fuerza dirigida' a posición de reposo de los nodos en el gráfico de forma automática

https://github.com/mbostock/d3/wiki/Force-Layout

He jugado todo un poco sin éxito, y se preguntaba si alguien es capaz de darme un ejemplo rápido sobre cómo agregar dicho soporte como se explicó anteriormente.

+0

Por favor, después de lo que tiene hasta ahora – Wex

+0

Si sería casi cerca de algo de trabajo en absoluto, mucho gusto, publicarlo. Pero es mejor usar el ejemplo dado como base, ya que es lo más cercano que tengo hasta ahora, alias nada. De todos modos, ayer estuve pensando en todo el problema y trabajando en algunas ideas. Publicaré las actualizaciones cuando tenga algún progreso – norrs

+0

Idea: modifique la función force.drag original para no alterar el estado fijo en mouseover/mouseout – norrs

Respuesta

28

¡Finalmente funcionó después de descubrir que no es ideal luchar con dos oyentes de "arrastre" (el suyo y el force.drag) unidos a los nodos!

Mucho mejor tener solo su propio "drag" -listener y call tick() manualmente, que es la característica clave para que el gráfico de fuerza coloque los nodos por usted en cada nueva posición del nodo en su arrastre.

Ejemplo de trabajo: http://bl.ocks.org/2883411

+0

buen trabajo :) debe agregar esto a la wiki d3 – paxRoman

+0

Buen plan, I Hago eso :-) – norrs

+0

No se procesa correctamente en FF. El nodo para arrastrar no aparece. En Chrome, la imagen en el nodo es para un enlace de imagen roto. – Spaceghost

Cuestiones relacionadas