转换的d3转换不适用于DIV

shi*_*xis 10 javascript svg transition d3.js

为什么转换属性在D3中不适用于DIV?它适用于任何svg元素,但不适用于"div".任何替代方案?

不工作

d3.select("div")
  .transition()
  .style("transform","translate(0px,-500px)");
Run Code Online (Sandbox Code Playgroud)

工作

d3.select("circle")
  .transition()
  .style("transform","translate(0px,-500px)");
Run Code Online (Sandbox Code Playgroud)

chi*_*hib 9

如上所述,d3不支持开箱即用的HTML元素的CSS3转换过渡.您必须创建一个自定义字符串插补器来为您完成.

注意:您必须找出想要设置动画的元素的初始翻译.这也没有考虑供应商前缀.

    var startTranslateState = 'translate(0px,0px)';
    var endTranslateState = 'translate(0px,-500px)';
    var translateInterpolator = d3.interpolateString(startTranslateState, endTranslateState);

    d3.select("div")
        .transition()
        .styleTween('transform', function (d) {
            return translateInterpolator;
        });

Run Code Online (Sandbox Code Playgroud)


shi*_*xis 0

旧版本d3.v3.6有问题

该问题现已修复,并且适用于 DIV 或任何 HTML 元素。

尝试最新版本的 d3 或 d3.v3.7 中的任何版本

https://github.com/mbostock/d3/releases

有用!