如果我有键控,如何停止调用 d3.brush ?D3/js.
How to stop calling d3.brush if I have keydown ? d3/js
这是我的刷子调用
brush.call(d3.svg.brush() //-calling the brush
.x(d3.scale.identity().domain([0, width]))
.y(d3.scale.identity().domain([0, height]))
.on("brushstart", function(d) {
d3.selectAll(".selectedNode text")
.attr("class", "hidden")
;
nodes.each(function(d) { d.previouslySelected = shiftKey && d.selected; });
})
.on("brush", function() {
//console.log(d3.event.sourceEvent.ctrlKey + "ctrl key");
nodes.classed("selectedNode", function(d) {
return d.selected = d.previouslySelected ^
(extent[0][0] <= d.x && d.x < extent[1][0]
&& extent[0][1] <= d.y && d.y < extent[1][1]);
});
})
.on("brushend", function() {
d3.event.target.clear();
d3.select(this).call(d3.event.target);
}));
如果我有,比如说,按住 ctrl 键,我如何停止在拖动时调用它?因此,如果 ctrl 键向下,我可以调用缩放函数,这将画笔和缩放函数分开
设法弄清楚了这一点,只需将刷子开始包装在一个条件下:
if(!d3.event.sourceEvent.ctrlKey) //-if the ctrl key is not pressed
{
}
这基本上是说如果ctrl键没有向下继续:)
所以取而代之的是:
.on("brush", function() {
//console.log(d3.event.sourceEvent.ctrlKey + "ctrl key");
nodes.classed("selectedNode", function(d) {
return d.selected = d.previouslySelected ^
(extent[0][0] <= d.x && d.x < extent[1][0]
&& extent[0][1] <= d.y && d.y < extent[1][1]);
});
})
你会有这个:
.on("brush", function() {
//console.log(d3.event.sourceEvent.ctrlKey + "ctrl key");
if(!d3.event.sourceEvent.ctrlKey) //-if the ctrl key is not pressed
{
nodes.classed("selectedNode", function(d) {
return d.selected = d.previouslySelected ^
(extent[0][0] <= d.x && d.x < extent[1][0]
&& extent[0][1] <= d.y && d.y < extent[1][1]);
});
}
})
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 如何在d3.js中返回路径的y坐标
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 使用D3.js计算带有字母间距的文本长度
- d3中堆栈函数和嵌套函数之间的差异
- D3.js模式不适用于弧形或圆环图
- d3.js Chord图的动态工具提示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- D3嵌套组作为x轴
- d3.hexbin插件-动态定义颜色域以适应数据
- HTML5FileReader输出到D3.js图表
- 如何在d3上的图形中添加放大和缩小按钮
- 在对象数组中查找多个值的d3范围
- d3中的条件转换
- 如果我有键控,如何停止调用 d3.brush ?D3/js.
- d3.js使用brush.clear();It’我不管用
- D3.js在无限比例上使用D3.svg.brush