我正在使用D3js drag。單個元素被完全拖拽得很好。但我想拖動一組元素。它可以做到。下面是在我的Js Fiddle link:如何使用d3.js拖動行爲來拖動svg組?
function onDragDrop(dragHandler, dropHandler) {
var drag = d3.behavior.drag();
drag.on("drag", dragHandler)
.on("dragend", dropHandler);
return drag;
}
var g = d3.select("body").select("svg").append("g")
.data([{ x: 50, y: 50 }]);
g.append("rect")
.attr("width", 40)
.attr("height", 40)
.attr("stroke", "red")
.attr("fill","transparent")
.attr("x", function (d) { return d.x; })
.attr("y", function (d) { return d.y; })
.call(onDragDrop(dragmove, dropHandler));
g.append("text")
.text("Any Text")
.attr("x", function (d) { return d.x; })
.attr("y", function (d) { return d.y; })
.call(onDragDrop(dragmove, dropHandler));
function dropHandler(d) {
// alert('dropped');
}
function dragmove(d) {
d3.select(this)
.attr("x", d.x = d3.event.x)
.attr("y", d.y = d3.event.y);
}
我想要同時拖動矩形都和文字。這是我的tried,但沒有運氣。我想我錯過了一些簡單的事情。
你應該在這裏添加你的代碼,而不只是鏈接到jsfiddle。 – 2013-04-11 11:55:34