Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
D3.js D3-刷子和刷子手柄的编程控制_D3.js_Brush - Fatal编程技术网

D3.js D3-刷子和刷子手柄的编程控制

D3.js D3-刷子和刷子手柄的编程控制,d3.js,brush,D3.js,Brush,我试图为笔刷(和笔刷手柄)行为设置一些限制。我想在笔刷开始和笔刷结束之间设置一个最小值 我从这个开始: 当用户移动画笔时。该代码更改笔刷控制柄的变换属性。这似乎也会影响基础笔刷的位置 我认为可能只是修改了以下值: d3.event.selection 可能有用。例如,为了确保用户永远不能滚动小于150像素,我编写了以下代码: var s = d3.event.selection; if (s[0] < 150) { s[0] = 150; } var s=d3.event.selec

我试图为笔刷(和笔刷手柄)行为设置一些限制。我想在笔刷开始和笔刷结束之间设置一个最小值

我从这个开始:

当用户移动画笔时。该代码更改笔刷控制柄的变换属性。这似乎也会影响基础笔刷的位置

我认为可能只是修改了以下值:

d3.event.selection
可能有用。例如,为了确保用户永远不能滚动小于150像素,我编写了以下代码:

var s = d3.event.selection;
if (s[0] < 150) {
s[0] = 150;
}
var s=d3.event.selection;
如果(s[0]<150){
s[0]=150;
}
这适用于笔刷控制柄。但不影响画笔

我已将修改后的MB代码放在以下位置:


任何关于前进的一般想法都将不胜感激。

我在上面修改的问题中详细说明的额外一行似乎解决了这个问题

总之:

gBrush.call(brush.move, [150, s[1]]);
添加到:

var s = d3.event.selection;
if (s[0] < 150) {
s[0] = 150;
gBrush.call(brush.move, [150, s[1]]);
}
然而,画笔似乎通过框架从鼠标获得默认控制。因此,通常情况下,需要告诉刷子手柄如何响应鼠标,而刷子不响应鼠标

在特殊情况下,如通过编程控制画笔。刷子手柄和刷子都需要被告知如何操作。这两个元素的语法略有不同

我在上面的代码段中添加了一行代码,生成了所需的行为:

var s = d3.event.selection;
if (s[0] < 150) {
s[0] = 150;
gBrush.call(brush.move, [150, s[1]]);
}
这似乎奏效了

var s = d3.event.selection;
if (s[0] < 150) {
s[0] = 150;
gBrush.call(brush.move, [150, s[1]]);
}
handle.attr("display", null).attr("transform", function(d, i) { return "translate(" + s[i] + "," + height / 2 + ")"; });