Javascript 当拖动到范围之外时,D3笔刷范围将从图表中消失

Javascript 当拖动到范围之外时,D3笔刷范围将从图表中消失,javascript,css,svg,d3.js,Javascript,Css,Svg,D3.js,我在D3中制作了一张图表,它使用一个带圆形手柄的垂直滑动画笔,再加上一条水平线来显示与曲线的交点: 。但当我将控制柄拖过范围=0的点时,画笔范围、控制柄和线条都会从图表中消失: 我已经禁用了上笔刷控制柄,因为这是一个单向工具,但我怀疑这可能是问题所在。我也尝试过改变边距,以暴露“>100%的笔刷高度”,但元素仍然以同样的方式消失。我是否错误地定义了刷子参数,或者这是否值得在D3回购协议中提交票据 以下是完整的示例: 谢谢 这是因为此时笔刷的范围为0,因此为空。如果查看,空笔刷的显示将设置为n

我在D3中制作了一张图表,它使用一个带圆形手柄的垂直滑动画笔,再加上一条水平线来显示与曲线的交点:

。但当我将控制柄拖过范围=0的点时,画笔范围、控制柄和线条都会从图表中消失:

我已经禁用了上笔刷控制柄,因为这是一个单向工具,但我怀疑这可能是问题所在。我也尝试过改变边距,以暴露“>100%的笔刷高度”,但元素仍然以同样的方式消失。我是否错误地定义了刷子参数,或者这是否值得在D3回购协议中提交票据

以下是完整的示例:


谢谢

这是因为此时笔刷的范围为0,因此为空。如果查看,空笔刷的
显示将设置为
none
。如果使用浏览器开发人员工具检查类为
.resize.s
g
元素,可以看到这一点

一种可能的修复方法是将其添加到
brushend
侦听器:

// Add the brush to the Y axis, set to 10% of the extent
var brush = d3.svg.brush()
    .y(y)
    .extent([0,0.1])
    .on("brushend", function(){
        brushg.selectAll(".resize.s")
            .style("display","inline")
    }); 
下面是一个与此解决方案相关的示例

一旦你开始真正使用图表中的画笔,你可能就不必处理这个问题了