Tree 다이어그램에서 node.ancestors()를 사용하여 조상 요소까지의 경로를 강조 표시
4591 단어 d3.js자바스크립트DataVisualization
버전
d3.js의 버전은 4.1.0입니다.
코드
이번에 사용한 모든 코드
mouse 이벤트 추가
addHover() {
this.element.on("mouseover", this.mouseovered(true))
.on("mouseout", this.mouseovered(false));
}
mouse hover시켜 하이라이트시킵니다. 원점이 되는 요소에 mouse 이벤트를 추가합니다.
해당 코드
조상 요소 하이라이트
코드
mouseovered(active) {
return function(d) {
var paths = d3.selectAll("path");
if(active) {
let ancestors = d.ancestors();
//ハイライト
paths.filter((d) => ancestors.includes(d))
.style("stroke", "#f00");
} else {
//ハイライトやめて、デフォルトの色に変更
paths.style("stroke", "#555");
}
};
}
node.ancestors()
조상 요소를 배열로 돌려줍니다.
d3-hierarchy/README.md at master · d3/d3-hierarchy
includes
indexOf 대신 ES6 includes를 사용하여 배열의 요소를 검색합니다. filter를 사용하여 조상 요소에 해당하는 것만 선별합니다.
String.prototype.includes() - JavaScript | MDN
Reference
이 문제에 관하여(Tree 다이어그램에서 node.ancestors()를 사용하여 조상 요소까지의 경로를 강조 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoyashiga/items/4da0aa370828384481a5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에 사용한 모든 코드
mouse 이벤트 추가
addHover() {
this.element.on("mouseover", this.mouseovered(true))
.on("mouseout", this.mouseovered(false));
}
mouse hover시켜 하이라이트시킵니다. 원점이 되는 요소에 mouse 이벤트를 추가합니다.
해당 코드
조상 요소 하이라이트
코드
mouseovered(active) {
return function(d) {
var paths = d3.selectAll("path");
if(active) {
let ancestors = d.ancestors();
//ハイライト
paths.filter((d) => ancestors.includes(d))
.style("stroke", "#f00");
} else {
//ハイライトやめて、デフォルトの色に変更
paths.style("stroke", "#555");
}
};
}
node.ancestors()
조상 요소를 배열로 돌려줍니다.
d3-hierarchy/README.md at master · d3/d3-hierarchy
includes
indexOf 대신 ES6 includes를 사용하여 배열의 요소를 검색합니다. filter를 사용하여 조상 요소에 해당하는 것만 선별합니다.
String.prototype.includes() - JavaScript | MDN
Reference
이 문제에 관하여(Tree 다이어그램에서 node.ancestors()를 사용하여 조상 요소까지의 경로를 강조 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/naoyashiga/items/4da0aa370828384481a5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
addHover() {
this.element.on("mouseover", this.mouseovered(true))
.on("mouseout", this.mouseovered(false));
}
mouseovered(active) {
return function(d) {
var paths = d3.selectAll("path");
if(active) {
let ancestors = d.ancestors();
//ハイライト
paths.filter((d) => ancestors.includes(d))
.style("stroke", "#f00");
} else {
//ハイライトやめて、デフォルトの色に変更
paths.style("stroke", "#555");
}
};
}
Reference
이 문제에 관하여(Tree 다이어그램에서 node.ancestors()를 사용하여 조상 요소까지의 경로를 강조 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/naoyashiga/items/4da0aa370828384481a5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)