我正在使用 Zoomable Icicle 布局示例来查看文件夹层次结构。
我目前使用过滤器功能如下:
var data = partition.nodes(root).filter(
function (d) {
return d.parent == null ? d.children && d.dateAccessed > formattedD : d.children && d.dateAccessed > formattedD && d.parent.dateAccessed > formattedD;
});
这会根据文件夹的 dateAccessed 是否在某个日期之后过滤出是否需要显示/不显示文件夹(及其所有子文件夹)。
然后,我使用示例代码使用此数据变量来绘制分区。
rect = rect
.data(data)
.enter().append("rect")
.attr("x", function (d) { console.log(!d.children); return x(d.x); })
.attr("y", function (d) { return y(d.y); })
.attr("width", function (d) { return x(d.dx); })
.attr("height", function (d) { return y(d.dy); })
.attr("fill", function (d) {
return (type == "Documents") ? '#9370DB' : (type == "Pictures") ? '#87CEFA' : (type == "Music") ? '#6B8E23' : (type == "Videos") ? '#F0E68C' : "#000000";
})
.on("click", clicked);
我需要布局来重新计算文件夹的放置位置,因为目前它为过滤掉的文件夹保留空间(参见附图)。(请原谅图片中文件夹的组织混乱,读入时是这样的。)
非常感谢。