Skip to content

Instantly share code, notes, and snippets.

@biovisualize
Created September 6, 2011 14:44
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save biovisualize/1197731 to your computer and use it in GitHub Desktop.
Save biovisualize/1197731 to your computer and use it in GitHub Desktop.
Drag and drop with D3
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
<title>Drag And Drop</title>
</head>
<body>
<div id="viz"></div>
<script type="text/javascript">
var vizSVG = d3.select("#viz")
.append("svg:svg")
.attr("width", 400)
.attr("height", 300);
vizSVG.append("svg:circle")
.attr("id", "blueCircle")
.attr("cx", 50)
.attr("cy", 140)
.attr("r", 40)
.attr("fill", "blue")
.call(d3.behavior.drag().on("drag", move));
vizSVG.append("svg:circle")
.attr("id", "redCircle")
.attr("cx", 100)
.attr("cy", 140)
.attr("r", 40)
.attr("fill", "red")
.call(d3.behavior.drag().on("drag", move));
function move(){
this.parentNode.appendChild(this);
var dragTarget = d3.select(this);
dragTarget
.attr("cx", function(){return d3.event.dx + parseInt(dragTarget.attr("cx"))})
.attr("cy", function(){return d3.event.dy + parseInt(dragTarget.attr("cy"))});
};
</script>
</body>
</html>
@jameslai
Copy link

jameslai commented Nov 5, 2013

I see the drag, where's the drop?

@biovisualize
Copy link
Author

It was left as an exercise ;) Sorry I wrote this code 2 years ago when I was learning. I would be glad to help if you need, on the D3 Google Groups

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment