D3版本4.2.2
我有一个图表,希望用户能够通过笔刷选择继续放大。我想在结束事件中清除或重置笔刷,以使用户看不到旧笔刷。
当前的TypeScript代码:
let brushGroup = this.svg.append('g')
.attr('class', 'brush');
let b = brushX()
.on('start', () => {
console.log('start brush');
brushGroup.style('opacity', 100);
})
.on('end', () => {
console.log('end brush', event.selection);
// remove and display none destroy the brush, so use opacity
brushGroup.style('opacity', 0);
this.updateDateRange(this.xScale.invert(event.selection[0]),
this.xScale.invert(event.selection[1]));
});
brushGroup.call(b);
console.log(brushGroup);
display: none
防止将来发生画笔启动事件brushGroup.remove()
也会破坏画笔不透明有效,但笔刷仍然存在(鼠标光标在悬停时发生变化)
那么清除或重置画笔的正确方法是什么?
我应该将其移至0,0吗?
我应该每次都销毁旧画笔并创建新画笔吗?
最佳答案
selection.call(brush.move,null);
https://github.com/d3/d3-brush/issues/10