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