gpt4 book ai didi

javascript - d3 刷子在移除时不会重置

转载 作者:行者123 更新时间:2023-11-30 14:59:49 24 4
gpt4 key购买 nike

这里缺少一些东西,因为什么时候删除画笔(您单击画笔而不是拖动)?事件选择不会重置(即不会删除画笔)。

有什么解决办法吗?

干杯!

// Handles a brush event, toggling the display of foreground lines.
function brush_parallel_chart() {
for(var i=0;i<dimensions.length;++i){
if(d3.event.target==y[dimensions[i]].brush) {
extents[i]=d3.event.selection.map(y[dimensions[i]].invert,y[dimensions[i]]);
}
}

foreground.style("display", function(d) {
return dimensions.every(function(p, i) {
if(extents[i][0]==0 && extents[i][0]==0) {
return true;
}
return extents[i][1] <= d[p] && d[p] <= extents[i][0];
}) ? null : "none";
});
}

http://plnkr.co/edit/RkWBgQ6oi584H3212WrM?p=preview

当我们在开始时完全清除画笔时会发生这种情况:

enter image description here

最佳答案

我 fork 了你的代码。看看这个 - http://plnkr.co/edit/oYhx6DSjQHI3E3nmE97h?p=preview它是您需要的行为吗?

g.append("g")
.attr("class", "brush")
.each(function(d) {
d3.select(this).call(y[d].brush = d3.brushY().extent([[-8, 0], [8,height]])
.on("start", brushstart) // <-- !!
.on("brush", gobrush)
.on("brush", brush_parallel_chart));
})
.selectAll("rect")
.attr("x", -8)
.attr("width", 16);

我将您的 brushstart 函数重命名为 gobrush。并创建了新的 brushstart 函数。我在选择开始事件上附加了新的 brushstart 函数。在此函数中,我设置了适当的样式,这会重置选择。

function brushstart(selectionName) {
foreground.style("display", "none")

var dimensionsIndex = dimensions.indexOf(selectionName);

extents[dimensionsIndex] = [0, 0];

foreground.style("display", function(d) {
return dimensions.every(function(p, i) {
if(extents[i][0]==0 && extents[i][0]==0) {
return true;
}
return extents[i][1] <= d[p] && d[p] <= extents[i][0];
}) ? null : "none";
});
}

关于javascript - d3 刷子在移除时不会重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46718819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com