【问题标题】:How to show tooltips always on Chart.js 2如何始终在 Chart.js 2 上显示工具提示
【发布时间】:2015-09-23 08:23:39
【问题描述】:

如何始终使用 Chart.js 版本 2 (alpha) 显示工具提示?

我已经尝试过这个Chart.js - Doughnut show tooltips always?,但似乎在最后一个版本中这已经改变了。

【问题讨论】:

  • 你最终做了什么?以下任何答案是否可以解决您的问题?如果是这样,你可以接受那个。如果没有,我猜你可以提供自己的答案。

标签: javascript canvas charts chart.js


【解决方案1】:

您需要遍历数据集并在onAnimationComplete 中指向和创建工具提示(将事件数组设置为空数组将不起作用)。

就像之前必须从事件数组中删除事件一样,以便在鼠标悬停和鼠标移出时工具提示不会消失,但在这种情况下,您需要将 events 设置为 false

另外,我认为我上次检查时 dev 中的版本存在 onAnimationComplete 不触发的问题,除非 animation duration0

这里是相关代码

var config = {
    type: 'pie',
    options: {
        events: false,
        animation: {
            duration: 0
        },
        onAnimationComplete: function () {
            var self = this;

            var elementsArray = [];
            Chart.helpers.each(self.data.datasets, function (dataset, datasetIndex) {
                Chart.helpers.each(dataset.metaData, function (element, index) {
                    var tooltip = new Chart.Tooltip({
                        _chart: self.chart,
                        _data: self.data,
                        _options: self.options,
                        _active: [element]
                    }, self);

                    tooltip.update();
                    tooltip.transition(Chart.helpers.easingEffects.linear).draw();
                }, self);
            }, self);
        }
    },

小提琴 - https://jsfiddle.net/c8Lk2381/


【讨论】:

【解决方案2】:

这对我有用:

 events: [],
    animation: {
        duration: 0,
        onComplete:function () {
            var self = this;
            var elementsArray = [];
            Chart.helpers.each(self.data.datasets, function (dataset, datasetIndex) {
                Chart.helpers.each(dataset.metaData, function (element, index) {
                    var tooltip = new Chart.Tooltip({
                        _chartInstance: self,
                        _chart: self.chart,
                        _data: self.data,
                        _options: self.options,
                        _active: [element]
                    }, self);
                    tooltip.update();
                    tooltip.transition(Chart.helpers.easingEffects.linear).draw();
                }, self);
            }, self);
        }
    }

【讨论】:

  • 嗨!是否有可能提供一个最小的工作 jsfiddle?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多