![](/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.