【问题标题】:D3 Liquid Fill Gauge Wave Not UpdatingD3 液体填充量表波形未更新
【发布时间】:2019-05-21 14:45:07
【问题描述】:

下面的 Plnkr 链接有我一直在尝试修改的 D3 液体填充量规,到目前为止它可以工作,我可以看到数字自动更新,但波高保持不变。 回到原始代码,我可以看到它有一个随机数生成器,它通过“值”作为文本标签和波高,但现在我已经用 jQuery/JSON 替换了它,只有文本标签正在更新。

注意:当更改 JSON 文件中的值时,它会导致 Plnkr 刷新页面并且 wave 确实会更新,但是当我在本地运行它并提取新数据时(通过 PHP 文件而不是 JSON 文件)文字会改变,但波浪不会。

原始仪表:https://gist.github.com/tissera/3f0b647d4928d2960a53738ef683b0a6

Plnkr:http://embed.plnkr.co/OO0fWVlBcXvlpTlZ2FYp/

【问题讨论】:

    标签: jquery json d3.js


    【解决方案1】:

    只是快速浏览了一下;

    如果您查看 DOM 中的 svg,您会发现它每次都会添加一个新组。由于旧组已经渲染,您看不到重新填充动画;

    只是稍微更新了你的区间函数

    setInterval(function() {
        $.get('dummydata.json', function(data) {
        //data = JSON.parse(data);
        data.forEach(function (d) {
            readycount = d.value;
            busycount = d.value2;
            agentcount = d.total;
            })
    // clear the old content in svg container  *** Note just quick and dirty solution ***
    d3.select("#fillgauge4").selectAll("*").remove();
    console.log(readycount);
    var config3 = liquidFillGaugeDefaultSettings();
                     config3.textVertPosition = 0.5
                     config3.waveAnimateTime = 1000;
    config3.valueCountUp = true;
                     config3.displayPercent = false;
                     config3.waveCount = 1;
                     config3.valueCountUp = true;
    var gauge4 = loadLiquidFillGauge("fillgauge4", readycount, config3);
    
        })
            },3000);
    

    【讨论】:

    • 啊我已经尝试过 .exit().remove() 但没有尝试 .remove() 自己,但不幸的是,这是每次从底部重新绘制波浪而不是向上移动/down 取决于值(如原始示例所做的那样)。我是否需要将 .remove() 放在不同的位置,例如 Liquidfill3.js 中的 GaugeUpdater() 函数?
    猜你喜欢
    • 2016-09-02
    • 2015-07-13
    • 2013-08-19
    • 2018-11-24
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多