D3.js d3.behavior.drag+;键控事件

D3.js d3.behavior.drag+;键控事件,d3.js,drag-and-drop,D3.js,Drag And Drop,我试图创建一个具有不同用户交互的基本D3组件。 例如,只有当用户按下Alt+鼠标左键+拖动鼠标时,才能启用拖放行为 如何做到这一点?您可以这样做: var g = d3.select("body").append("svg") .attr("width",200) .attr("height",200).append("g") var drag = d3.behavior.drag() .on("drag", dragmove); function dragmove(d) { /

我试图创建一个具有不同用户交互的基本D3组件。 例如,只有当用户按下Alt+鼠标左键+拖动鼠标时,才能启用拖放行为


如何做到这一点?

您可以这样做:

var g = d3.select("body").append("svg")
.attr("width",200)
.attr("height",200).append("g")

var drag = d3.behavior.drag()
    .on("drag", dragmove);

function dragmove(d) {
  //check whether alt is pressed if not return
  if (!d3.event.sourceEvent.altKey)
    return;
  var x = d3.event.x;
  var y = d3.event.y;
  d3.select(this).attr("transform", "translate(" + x + "," + y + ")");
}

g.append("circle")
.attr("transform", "translate(100, 100)")
.attr("r",10)
//register drag to all circles.     
d3.selectAll("circle").call(drag);
工作代码

希望这有帮助