क्या d3.js layout.force को डीवी की तरह गैर-svg तत्वों को (पुनः) स्थिति में उपयोग किया जा सकता है?d3.js गैर-एसवीजी तत्वों पर बल लेआउट
तो div के है position: absolute;
शायद left
और top
रूप svg घटकों के लिए उपयोग x1
और y1
विशेषताओं के लिए एक समकक्ष के रूप में इस्तेमाल किया जा सकता है?
लक्ष्य आईई 8 समर्थन के साथ छवियों और मेनू वस्तुओं पर कुछ बल प्रभाव पड़ता है। मुझे इस तथ्य से अवगत है कि एसवीजी नोड्स छवियां हो सकती हैं लेकिन मुझे आईई 8 का समर्थन करने की आवश्यकता है, यह एक विकल्प नहीं है।
यदि संभव नहीं है, तो इस उद्देश्य के लिए d3.js एक स्थिर विकल्प के साथ svgweb का उपयोग कर रहा है?
धन्यवाद!
** अद्यतन **
डी 3 शांत है !! मुझे इसका लटका मिलना शुरू हो रहा है और यह सुनिश्चित करना संभव है कि "बल" नियमित एचटीएमएल तत्वों जैसे divs d3.layout.force()
पर अनिवार्य रूप से आपको प्रत्येक "टिक" (या फ्रेम) के लिए एक्स और वाई निर्देशांक देता है जो आप कर सकते हैं हालांकि आप चाहते हैं उपयोग करें।
अर्थात्:
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);
के साथ खींचने से आपको समस्याएं (अपेक्षित) मिलती हैं।
फ़ायरबग:
(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();
हालांकि सुधारी जा सकने वाली होना चाहिए।