【问题标题】:Stop Highcharts Networkgraph from redrawing the markers when hovering停止 Highcharts Networkgraph 在悬停时重绘标记
【发布时间】:2019-12-02 01:26:42
【问题描述】:

我正在研究网络图,有人帮助我达到了可以在单击节点时隐藏/显示节点的地步。但是,当您完全移动鼠标时,似乎存在重绘节点的默认行为。

这里是小提琴:https://jsfiddle.net/oLbkpsag/。你会看到点击一个节点会隐藏它的子节点,但是如果你在点击后鼠标点击,那么节点会重新出现。

我添加了

addClass('hide-tree-element')

这对 dataLabel 有帮助,但标记或“图形”每次都会重绘。

悬停https://github.com/highcharts/highcharts/issues/9899 时似乎有默认行为“使其他系列变暗”。我认为这可能会影响它。我试过禁用它,但它似乎不起作用。

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript svg highcharts


    【解决方案1】:

    你说得对,非活动状态会重绘mouseOut事件上的每个点。

    要更改此默认行为,您可以简单地包装 Highcharts.Series.prototype.onMouseOut 方法并删除负责删除非活动状态功能的代码(在此处添加:https://github.com/highcharts/highcharts/commit/f86f50f80160f078bd185e8e5db1251f317f9fff#diff-12c0e234e06f670ee77d64cce2a9205dL768):

    // Reset all inactive states
    chart.series.forEach(function (series) {
       series.setState('', true);
    });
    

    演示:

    【讨论】:

    • 非常感谢!这真的很有帮助。
    • 嗨@wojciech - 我想知道你是否可以帮助我。我正在努力让节点的“孙子”在单击时隐藏/显示。有任何想法吗?我试图“触发”点击link.id,但它不起作用。所以当点击大卫​​哈里森时,我希望地址和艾伦鲍尔也隐藏起来。如果需要,很高兴将此作为一个单独的问题提出。非常感谢。
    • 您可以在链接参考链中进一步实现它。查看此演示:jsfiddle.net/BlackLabel/xsLnmd0u
    • 嗨@Wojciech,非常感谢。看来我现在可以上链并将它们隐藏起来,这很棒。我看到的一个问题与原始问题有关。似乎“点击”事件也重绘了节点。因此,如果您单击一个它隐藏子节点没问题,但是单击另一个节点将只显示最初隐藏节点的标记。有什么想法吗?
    • 不幸的是,这是默认的网络图行为。要更改它,您必须覆盖 render 方法,并在重新渲染点后再次隐藏它们。检查这个例子:jsfiddle.net/BlackLabel/4tgb9jcx/1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多