javascript - 使用 d3 同时用 .tween 过渡所有 div 元素

标签 javascript d3.js

我正在尝试修改以下示例,以便所有条形图同时开始动画,而不是一个一个地循环;

这是完整代码的 plnk + 我认为需要编辑的 d3 代码片段。

http://plnkr.co/edit/sneKYhTPAK0X8IhhExj9?p=preview

function loadChart() {

    var start_val = 0;

    d3.select("body").selectAll(".pattern")
        .append("div")
        .text(start_val)
        .attr("class", "percentage")
        .transition()
        .delay(function(d, i) {
            return i * 200;
        })
        .duration(1000)
        .style("min-width", function(d, i) {
            return (d.progress * 3) / 2 + "px";
            console.log(1);
        })
        .tween(".percentage", function(d) {
            var i = d3.interpolate(this.textContent, d.progress),
                prec = (d.progress + "").split("."),
                round = (prec.length > 1) ? Math.pow(10, prec[1].length) : 1;

            return function(t) {
                this.textContent = Math.round(i(t) * round) / round + "%";
            };
        });

    d3.select("body").selectAll(".path")
        .transition()
        .delay(function(d, i) {
            return i * 200;
        })
        .duration(1000)
        .style("width", function(d, i) {
            return d.progress * 3 + "px";
        });
}

据我所知,.tween 将循环遍历每个元素并开始过渡。但是,我找不到使该函数同时开始所有元素的过渡的方法。

这是我第一次尝试使用 d3.js,因此非常感谢任何帮助/建议。

谢谢

最佳答案

而不是这个

.delay(function(d, i) {
    return 200*i;//this will make it start at different times as i indicate the index of the element.
})

让它变成这样:

.delay(function(d, i) {
    return 200;
})

工作代码here

关于javascript - 使用 d3 同时用 .tween 过渡所有 div 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000817/

相关文章:

javascript - 如何使用 `window.open` 显示模态弹出窗口?

javascript - 为什么 JavaScript 中的 SQLite 不起作用?

javascript - 使用 JS 单击时不显示表单

javascript - 在可拖动点与控制点之间绘制曲线以调整曲线 SVG 和 d3.js

javascript - 关于 d3.js selectAll 的困惑

javascript - D3 中 .remove() 的临时替代方案

javascript - 防止javascript中的url受到xss攻击

javascript - 将鼠标悬停在图像上,图像下方的图像不透明度和标题颜色发生变化......当标题变成两行时,它会破坏格式

javascript - 实现 D3FC-Sample 以减少数据

javascript - D3 v4 单击可拖动的元素