javascript - D3 转换在 "background-color"上工作但不在 "width"上工作

标签 javascript css d3.js bar-chart transition

简单问题:我正在尝试在 <div id="chart"></div 中编写动画条形图使用以下 d3.js 代码:

data=[100,200,400,350];
d3.select("#chart")
.selectAll("div")
.data(data)
.enter()
.append("div")
  .style("height",30)
  .style("width",function(d){return d/2})
  .style("background-color","grey")
  .transition()
    .style("width",function(d){return d})
    .style("background-color","blue");

结果很奇怪:条形颜色来自 greyred正如预期的那样,但它们的宽度保持在 d/2 .

知道为什么吗?

最佳答案

您正在使用 CSS 样式设置宽度。这需要 units (px、em 或 %)。

更新代码:

<!DOCTYPE html>
<html>

<head>
  <script data-require="d3@4.0.0" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
</head>

<body>
  <div id="chart"></div>
  <script>
    data = [100, 200, 400, 350];
    d3.select("#chart")
      .selectAll("div")
      .data(data)
      .enter()
      .append("div")
      .style("height", "30px")
      .style("width", function(d) {
        return d / 2 + "px"
      })
      .style("background-color", "grey")
      .transition()
      .duration(2000)
      .style("width", function(d) {
        return d + "px";
      })
      .style("background-color", "blue");
  </script>
</body>

</html>

关于javascript - D3 转换在 "background-color"上工作但不在 "width"上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635358/

相关文章:

javascript - 如何使用具有多个子原型(prototype)对象的原型(prototype)嵌套对象和共享变量?

javascript - 如何将 Enter 键转换为网页的 Tab 键

javascript - 如何在 Material UI 中的字段之间留出空间?

d3.js - D3 : Add element after delay, 然后转换

javascript - d3 动画的持续时间

javascript - Javascript 的神秘工作 - 当为三个定义的数组时,第四个值不返回异常

jquery - 在 bootstrap 中单击菜单时,菜单向左移动(在 chrome 中大约 20px)

css - 有没有办法相对于元素的中心定位背景图像?

html - 怎么过渡出去?

javascript - D3js d.x 未定义