JavaScript Infovis 툴킷 TreeMap에서 특정 깊이에 레이블 표시
-
13-12-2019 - |
문제
JavaScript Infovis 툴킷을 사용하여 TreeMap 4 레벨 (올림픽> 스포츠> 이벤트> 메달)과 2/3에서 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 = '';
}
}
}
. 제휴하지 않습니다 StackOverflow