Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用鼠标中键进行d3js平移_Javascript_D3.js - Fatal编程技术网

Javascript 使用鼠标中键进行d3js平移

Javascript 使用鼠标中键进行d3js平移,javascript,d3.js,Javascript,D3.js,我最近将D3.js从v3升级到v4,我注意到我不能再像使用左键一样通过按下鼠标中键来进行平移。 通过比较mbostock较旧和较新的区块,似乎也发生了同样的事情 与…相比。尽管它们的代码和功能非常相似,但在v3上使用鼠标中键是可行的,而在另一个上则不行 有人知道在新版本上是否仍然可以使用鼠标中键进行平移吗?查看“缩放.过滤器”上的按钮。有点让人困惑,但这就是抑制次要按钮的原因 比如: .filter(function(){ return (event.button === 0 ||

我最近将D3.js从v3升级到v4,我注意到我不能再像使用左键一样通过按下鼠标中键来进行平移。 通过比较mbostock较旧和较新的区块,似乎也发生了同样的事情

与…相比。尽管它们的代码和功能非常相似,但在v3上使用鼠标中键是可行的,而在另一个上则不行

有人知道在新版本上是否仍然可以使用鼠标中键进行平移吗?

查看“缩放.过滤器”上的按钮。有点让人困惑,但这就是抑制次要按钮的原因

比如:

.filter(function(){
  return (event.button === 0 ||
          event.button === 1);
})
将允许使用左键和中键进行缩放/平移



.轴路径{
显示:无;
}
.轴线{
笔划不透明度:0.3;
形状渲染:边缘清晰;
}
.zoom{
填充:无;
指针事件:全部;
}
.视图{
填充:url(#渐变);
行程:#000;
}
var svg=d3。选择(“svg”),
宽度=+svg.attr(“宽度”),
高度=+svg.attr(“高度”);
var x=d3.scaleLinear()
.domain([-1,宽度+1])
.范围([-1,宽度+1]);
变量y=d3.scaleLinear()
.domain([-1,高度+1])
.范围([-1,高度+1]);
var xAxis=d3.axisBottom(x)
.刻度((宽度+2)/(高度+2)*10)
.尺寸(高度)
.填充物(8-高度);
var yAxis=d3.axisRight(y)
.滴答声(10)
.尺寸(宽度)
.填充物(8-宽度);
var view=svg.append(“rect”)
.attr(“类”、“视图”)
.attr(“x”,0.5)
.attr(“y”,0.5)
.attr(“宽度”,宽度-1)
.attr(“高度”,高度-1);
var gX=svg.append(“g”)
.attr(“类”、“轴--x”)
.呼叫(xAxis);
var gY=svg.append(“g”)
.attr(“类”、“轴--y”)
.呼叫(yAxis);
var zoom=d3.zoom()
.scaleExtent([1,40])
.翻译范围([
[-100, -100],
[宽度+90,高度+100]
])
.on(“缩放”,缩放)
.filter(函数(){
返回(event.button==0||
event.button==1);
})
svg.append(“rect”)
.attr(“类”、“缩放”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.呼叫(缩放);
函数缩放(){
view.attr(“transform”,d3.event.transform);
调用(xAxis.scale(d3.event.transform.rescaleX(x));
调用(yAxis.scale(d3.event.transform.rescaleY(y));
}