我正在寻找一个解决方案,以显示基于你在图表内悬停的一些数据。这里是我的jsfiddle和我想要的演示。gif image
我希望我已经把一切都说清楚了,提前感谢!
const chart = document.getElementById('chart');
new Chart(chart, {
type: 'doughnut',
data: {
labels: ['Bitcoin', 'Ethereum', 'Litecoin', 'Tether'],
datasets: [{
data: [50, 30, 10, 10],
backgroundColor: [
'orange',
'purple',
'darkblue',
'green'
],
borderWidth: 2,
}]
},
options: {
responsive: false,
cutout: '72%',
plugins: {
legend: {
display: false,
},
},
}
});
.chart-wrap {
display: flex;
align-items: center;
justify-content: center;
}
.chart-balance {
position: absolute;
}
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<div class="chart-wrap">
<canvas id="chart" class="kz-relative kz-index-10" width="224" height="224"></canvas>
<div class="chart-balance">
<p class="chart-asset-type">Ethereum</p>
<h5 class="chart-asset-value">$1,000</h5>
</div>
</div>
2条答案
按热度按时间hmtdttj41#
您可以使用onHover钩子来更新HTML
oewdyzsn2#
Chart.js的问题是它创建了一个画布,你不能用外部JavaScript代码来操作这些元素。我真的不知道是否有可能的配置来模拟你在Chart.js中想要的东西,因为我对它知之甚少。无论如何,我设法用Plotly库做到了这一点。有了它,我用圆形图表做了一部分工作,之后,我们在HTML中有SVG元素。2有了这个,我可以操纵默认的工具提示值,使它出现在自定义元素的中心。
完整的代码在那里,但我建议您查看Plotly文档,如果您不了解MutationObserver。