javascript - Chart.js - 鼠标悬停导致图形闪烁和调整大小

标签 javascript jquery chart.js2

开始,I have made a short video to show exactly what I'm running into .

总结视频:在使用 Chart.js (2.6.0) 时,我可以毫无问题地创建图表;但是当我将鼠标悬停在条形/点上时,图表将调整其元素的大小并闪烁。奇怪的是它完全不一致。有时当我刷新时,它根本没有这种行为;但是如果我将鼠标悬停在某个东西上并且它开始执行它,它不会停止,直到我再次刷新或关闭选项卡(这也与此不一致)。发生这种情况时,我不会更改代码中的任何内容,它会自行完成这一切。

为了修复它,我在此处引用了许多关于 SO 的其他线程以及 Chart.js 文档。在我的解决方案中:我已经指出要在创建图形的 Divs 和 Canvas 中添加指定的高度/宽度;设置Animation duration为0,Hover Animation duration为0,Responsive Animation duration为0;我确保响应设置为真,并保持纵横比保持为真,更改了工具提示模式……我已经尝试了所有这些,以及其他似乎几乎没有效果的小东西。

我被难住了!

这是我的图表代码之一(没有我如何获取 JSON 数据等,只是图表):

new Chart($("#runwayChart"), {
    type: "horizontalBar",
    data: {
        labels: runwayLabels,
        datasets: [{
            label: "Months Left", fill: true,
            backgroundColor: "#3333ff",
            borderColor: "#3333ff",
            data: score
        }, {
            label: "Expenses",
            fill: true,
            backgroundColor: "#aa2222",
            borderColor: "#aa2222",
            data: expenses
        }, {
            label: "Revenue",
            fill: true,
            backgroundColor: "#2222aa",
            borderColor: "#2222aa",
            data: revenues
        }]
    },
    options: {
        tooltips: {
            mode: 'index'
        },
        responsive: true,
        maintainAspectRatio: true,
        animation: {
            duration: 0,
        },
        hover: {
            animationDuration: 0,
        },
        responsiveAnimationDuration: 0
    }
});

如果你们能提供任何帮助,我将不胜感激!

谢谢 =)

最佳答案

我看到已经有一段时间没有人回答这个帖子了。我通过应用两件事解决了我的闪烁问题。

第一个 当我声明我使用的图表时:

var ctx = document.getElementById('图表').getContext('2d'); window.chart = new Chart(ctx, {}) ...

而不是 var chart = new Chart(ctx, {})..

通过这种方式,我们确保图表已附加到窗口中。对象。

其次

在绘制新图之前(例如数据更新)我们需要确保之前的 Canvas 已经被销毁。我们可以使用以下代码进行检查:

if(window.chart && window.chart !== null){ window.chart.destroy(); }

关于javascript - Chart.js - 鼠标悬停导致图形闪烁和调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45706830/

相关文章:

javascript - 如何根据自定义属性分别为具有相同类的所有元素设置背景颜色

javascript - chart.js - 用户添加线的最后一点

javascript - 如何在 Chart.JS 中对提供给图表的数据值进行逗号化?

javascript - 如何抽象 JQuery 动画方法

javascript - 我如何在 jquery 中以编程方式设置输入文本框的值

javascript - 关于这个 JavaScript 计算器我不明白的三件事

javascript - 从 Ruby on Rails 输出散列数组到 chart.js

javascript - Angular 2 构建工具首选项

jquery - 尝试使用数据表时出现 mData 错误

jquery - 所选单选按钮的背景颜色不变