d3.js force layout на элементах, отличных от svg

Может макет d3.js.принудительно использовать (пере) позиционировать элементы, не относящиеся к SVG, такие как div?

Если div имеют position: absolute; возможно, можно использовать left и top в качестве эквивалента атрибутов x1 и y1 , используемых для элементов svg?

Цель состоит в том, чтобы иметь некоторые принудительные эффекты для изображений и пунктов меню с поддержкой IE8. Я знаю, что узлы svg могут быть изображениями, но, поскольку мне нужно поддерживать IE8, это не вариант.

Если это невозможно, можно ли использовать svgweb вместе с d3.js в качестве стабильного варианта для этой цели?

Спасибо!

** Обновление **

D3 круто !! Я начинаю понимать это, и я уверен, что можно использовать « the force » на обычных элементах html, таких как div, поскольку d3.layout.force () по существу дает вам Координаты x и y для каждой «галочки» (или кадра), которые вы можете использовать, как хотите.
то есть:

force.nodes(data)
     .on("tick", tick)
     .start();

function tick() {
     div.style("left", function(d) {return d.x+"px"})
        .style("top", function(d) {return d.y+"px"});
}

работает нормально!

перетаскивание с помощью .call (force.drag); действительно вызывает проблемы (как и ожидалось).

firebug:

(container.ownerSVGElement || container).createSVGPoint is not a function
d3_svg_mousePoint()d3.js (line 3718)
container = div#nav
e = mousemove clientX=607, clientY=200
mouse()d3.js (line 3711)
container = div#nav
d3_behavior_dragPoint()d3.js (line 4481)
d3_behavior_dragDispatch()d3.js (line 4453)
type = "drag"
d3_behavior_dragMove()d3.js (line 4491)
l()d3.js (line 1871)
e = mousemove clientX=607, clientY=200
[Break On This Error]   

var point = (container.ownerSVGElement || container).createSVGPoint();

Однако это можно исправить.

8
задан VividD 25 January 2014 в 21:50
поделиться