Может макет 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();
Однако это можно исправить.