Chart.js允许通过HTML5的canvas进行图表绘制。这里我们希望绘制一个环形图,点击图上各segment时可以显示自定义的圆形tooltip。
Chart.js支持通过几个变量添加tooltip,它提供一个tooltipTemplate但是却不支持自定义tooltip的HTML!于是决定自行绘制tooltip手动添加上去。
CSS:
HTML:
通过Chart.js绘制一个环形图
HTML:
JS:
计算坐标
每当我点击一个segment的时候,需要自定义的tooltip出现在该segment中心位置。所以需要计算segment中心的坐标
这个function中,需要提供segment初始和最终的角度,环形内外圆半径和环形中心坐标。这些数值我们可以通过以下方式获得
设置点击action
最后设置只有当在任意segment上点击的时候才出现tooltip
HTML: 将tooltip改为初始不可见
JS: 在计算出的中心位置显示tooltip