는 전설 토글 링은 현재 스택 및 복합 차트 아닌 subcharts에 초점을 맞추고 있습니다.
범례의 토글 링 시스템을 해킹하는 것이 가능할 수도 있지만 여기서는 토글 링 기능을 확장으로 추가하는 솔루션입니다. 차트가 pretransition
이벤트와 함께 그려 될 때까지
우리는 그 다음 전설의 각 항목에 우리 자신의 클릭 핸들러를 추가 기다릴 것입니다.
composite.on('pretransition.hideshow', function(chart) {
chart.selectAll('g.dc-legend .dc-legend-item')
.on('click.hideshow', function(d, i) {
var subchart = chart.select('g.sub._' + i);
var visible = subchart.style('visibility') !== 'hidden';
subchart.style('visibility', function() {
return visible ? 'hidden' : 'visible';
});
d3.select(this).style('opacity', visible ? 0.2 : 1);
});
});
는 또한, 우리는 항목이 숨겨져 있음을 나타 내기 위해 범례 항목의 반투명를 설정합니다 : 이것은 다음의 CSS의 가시성을 전환, 해당 subchart의 선택을 만들 범례 항목의 인덱스를 사용합니다.
이것은 마치 마술처럼 느껴집니다. 내 차트 이름 (myCompositeChart)을 올바른 위치로 지정하려면 어디에 배치해야합니까? 언제나처럼 고마워. – stutray
필자가 예로 든 javascript 차트 객체 인'composite'를 호출했습니다. 위의 블록의 첫 번째 단어를 변경하기 만하면됩니다. (의도적으로 복사해서 붙여 넣기가 쉬워 지도록 안에 의도적으로'chart'를 사용합니다.) – Gordon
그래서 : ** var myCompositeChart = dc.compositeChart ("# Viz_Main2"); ** 등 확장자는 다음과 같습니다. ** myCompositeChart.on ('pretransition.hideshow'기능 (그래프) { chart.selectAll ('g.dc-범례 .dc-범례 항목') CSTE 연구진 ('click.hideshow'기능 (d, ⅰ) { VAR의 subchart chart.select = ('g.sub._'+ I) 표시 VAR subchart.style = ('공개') == "숨겨진",! subchart.style ('공개' (투명도, 가시성? 0.2 : 1); }); }); * (이모티콘 ', 가시? 0.2 : 1); * – stutray