C3.js를 차트로 사용하는 법을 배우고 있으며, 툴팁 기능을 더 잘 커스터마이즈하고 싶습니다. 일반적으로 C3 툴팁은 데이터 위로 마우스를 가져 가면 나타납니다. Example here. 그들은 지속되지 않으며 상호 작용할 수 없습니다.C3 툴팁과 상호 작용 한 후 닫습니다.
스택 오버플로 (link here)에 일부 코드가 있습니다. 타임 아웃과 CSS를 추가하여 툴팁을 유지하고 사용자가 상호 작용할 수있게하지만 나중에 툴팁을 닫는 방법을 모릅니다. 사용자가 차트 또는 툴팁의 어딘가를 클릭하거나 타임 아웃을 사용하여. 툴팁이 나타나면 차트에 영원히 남아있게하는 것이 짜증스러운 일이라고 생각합니다.
내가 전화를하거나해야 거기, 오버라이드 (override) 할 수있는 기능이 있어야한다? 나는 onclick 기능을 추가하여 데이터 포인트를 클릭했을 때 무언가를 할 수는 있지만 원하는대로 할 수있는 방법을 찾지 못했습니다. 나는 onclick하는 방법을 알아 내기 위해 this link를 따라 갔다.
data: {
columns: [ ['data1', 40, 50, 60, 70, 80] ],
types: { data1: 'bar'},
onclick: function(e) { alert(e.value); }
}
툴팁을 닫으면 어떻게 트리거 될지 잘 모르겠습니다. 툴팁과 상호 작용하는 방법과 닫히지 않는 방법을 보여주는 JSFiddle의 코드가 있습니다.
CSS :
.c3-tooltip-container {
background-color: #ccc;
border: solid 1px black;
padding: 20px;
pointer-events: auto !important;
}
JS :
var features = dates = defects = [
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
];
var chart = c3.generate({
data: {
columns: [
['data1', 30000, 20000, 10000, 40000, 15000, 250000],
['data2', 100, 200, 100, 40, 150, 250]
],
},
tooltip: {
position: function() {
var position = c3.chart.internal.fn.tooltipPosition.apply(this, arguments);
position.top = 0;
return position;
},
contents: function (data, defaultTitleFormat, defaultValueFormat, color) {
var $$ = this, config = $$.config,
titleFormat = config.tooltip_format_title || defaultTitleFormat,
nameFormat = config.tooltip_format_name || function (name) { return name; },
valueFormat = config.tooltip_format_value || defaultValueFormat,
text, i, title, value;
text = "<div id='tooltip' class='d3-tip'>";
title = dates[data[0].index];
text += "<span class='info'><b><u>Date</u></b></span><br>";
text += "<span class='info'>" + title + "</span><br>";
text += "<span class='info'><b><u>Features</u> : </b> " + features[data[0].index] + "</span><br>";
text += "<span class='info'><b><u>Enhancements</u> : </b> " + defects[data[0].index] + "</span><br>";
text += "</div>";
return text;
}
}
});
니스! 정말 고마워. – Dallas
당신을 진심으로 환영합니다. –