![](/img/trans.png)
[英]Why my left drag/slider is working but the right drag/slider not working
[英]Drag behavior not working right?
我正在尝试查找程序中存在的拖动行为设置的问题,因为似乎拖动甚至无法激活。 我正在使用http://jsfiddle.net/da37B/317/作为程序的参考代码。
以下是相关代码:
vis.selectAll(".nodes")
.data(nodes)
.enter().append("circle")
.attr("class", "nodes")
.attr("cx", function (d) {
return xRange(d.x);
})
.attr("cy", function (d) {
return yRange(d.y);
})
.attr("r", "10px")
.attr("fill", "black")
.attr("transform", "translate(" + p.x + "," + p.y + ")")
.call(drag); <------
// Define drag beavior
var drag = d3.behavior.drag()
.on("drag", dragmove);
function dragmove(d) {
var x = d3.event.x;
var y = d3.event.y;
d3.select(this).attr("transform", "translate(" + x + "," + y + ")");
}
这是完整的代码: https : //jsfiddle.net/4o5pch1q/1/
您没有看到任何效果的原因是您的jsfiddle中存在错误。 以后请检查控制台中是否有明显的事情。
一旦解决了明显的错误(包括向上drag
的定义,以便在使用之前对其进行定义),剩下的唯一事情就是告诉D3如何获取被拖动元素的原点(否则圆圈“跳转”)拖动时):
var drag = d3.behavior.drag()
.origin(function(d) { return d; })
.on("drag", dragmove);
在此处完成演示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.