簡體   English   中英

拖動行為行不通嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM