在Javascript Infovis Toolkit树映射中显示特定深度的标签



我正在使用Javascript Infovis Toolkit创建一个具有4个级别(奥运会>体育>赛事>奖牌)的树图,我想一次显示三个级别,但只显示2/3的标签。

(例如:在俯视图中,我会显示所有不同的体育项目,以及体育项目中的所有事件,但不会显示事件的标签,因为太多了。)

我使用以下代码来尝试隐藏级别,但当我放大时,它不会取消隐藏它们。

onPlaceLabel: function(domElement, node){
    if (node._depth == 0) {console.dir(node);}
        if (node._depth > 1) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }
}

当放大/缩小时,_depth似乎不会改变——它是每个节点的静态属性。

我可以编写一个条件,根据设置为父节点的深度当前来更改要显示的深度级别。有人知道我在哪里找到的吗?

谢谢!

想明白了!onBeforeComputer();方法在计算所有内容之前对所选节点执行操作。参见以下代码:

//sets the selected node depth as the .currentParentDepth
onBeforeCompute : function(node){
    if (typeof this.currentParentDepth === "undefined") {
        this.currentParentDepth = 0;
    }
    else {
        this.currentParentDepth = node._depth; 
    }
},
onPlaceLabel: function(domElement, node){
    if (this.currentParentDepth == 0) {
        if (node._depth > 1) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }
    } else if (this.currentParentDepth == 1) {
        if (node._depth > 2) {
            domElement.style.display = 'none';
        } else {
            domElement.style.display = '';          
        }           
    }
}

相关内容

  • 没有找到相关文章

最新更新