Chart.js版本1差异,是否可以在版本2中实现?

时间:2016-05-18 11:18:07

标签: chart.js

我很抱歉,如果这是错误的地方,但chart.js git建议这是唯一获得支持的地方。

我最近使用了chart.js的第1版用于项目,因为更简单/更容易的用户体验,我选择了这个库。作为线图的示例,如果将鼠标悬停在x轴上,它将突出显示与悬停点最近的点。在版本2中,您必须将鼠标悬停在实际点上。在chart.js和其他库(如highcharts.js)中,其他图表类型的情况类似。

我的问题很简单,我们可以复制版本2中版本1的可用性还是完全丢失了这个方面? 看一下文档看起来似乎不太可能。

如果答案是否定的,我可以建议发生两种情况中的一种,无论是针对版本2开发还是针对版本1开发的。

1 个答案:

答案 0 :(得分:1)

您可以通过扩展line图表类型并将工具提示模式设置为label来复制v1.x功能,就像这样

Chart.defaults.myLine = Chart.helpers.clone(Chart.defaults.line);
Chart.controllers.myLine = Chart.controllers.line.extend({
    updateElement: function (point) {
        var result = Chart.controllers.line.prototype.updateElement.apply(this, arguments);
        point.inRange = function (mouseX, mouseY) {
            var vm = this._view;
            // ignore the y coordinate
            return vm ? (Math.abs(mouseX - vm.x) < (vm.hitRadius + vm.radius)) : false;
        };
        return result;
    }
});

然后

    ...
    type: 'myLine',
    ...
    options: {
        tooltips: {
            mode: 'label'
        }
    }
};

小提琴 - http://jsfiddle.net/gyqmbL2q/