javascript - 使用指定样式平滑过渡路径

标签 javascript d3.js

我对这个社区相当陌生,而且我也不是最善于表达的人。我希望我不会因为发布新问题而扰乱权力机构。我之所以再次发帖,是因为我原来的问题表达得很差。即使经过反复编辑,这种困惑似乎也是无法挽回的。

我的问题如下:

我想使用中风破折号(或其他方式)来动画路径。它基本上是一条垂直路径,没有花哨的坐标。从我见过的所有示例中,“动画”路径是一条实线。我想制作一条虚线样式的路径动画。

根据我的观察,中风破折号数组被用作一种手段来实现平滑的路径动画。如果我没记错的话,这是否意味着人们不能再使用 Stroke-dasharraay 来进行样式设计?您是否必须像零和类型的情况一样选择如何利用它,要么仅动画,要么仅样式?

重申一下,我想使用虚线样式的路径进行动画处理,但根据当前的示例/代码语法,我不确定如何做到这一点。

请告知如何在附加破折号样式的路径条目时对其进行动画处理(在我的情况下,当由按钮事件调用时)。我希望从下到上绘制路径,样式为:Stroke-dasharray, '5,3'

此版本已经过预先修订,以最大程度地减少困惑。我已经学到了很多东西,我希望这个问题能够照亮那些尚未浮出水面的小型虚拟空间。

如果仍有疑问,请随时给我打电话,让我进行澄清。

感谢您的阅读

最佳答案

您可以“增长”一条线,从 0px 过渡到总长度px。就像这样:

var points = [
  [100, 10],
  [100, 10]
];

var line = d3.svg.line()

var svg = d3.select("body").append("svg")
        .datum(points)
    .attr("width", 960)
    .attr("height", 500);

svg.append("path")
    .attr("id","grow")
    .style("stroke-dasharray", "5,3")    
    .attr("d", line)
    .transition()
      .duration(7500)                // <-- transition time
      .attr("d", "M100,400L100,10")  // <-- final lenght

Here the working code

不是最优化的选项。这是一个干净的:

<style>
line {
  fill: none;
  stroke: #000;
  stroke-width: 3px;
  stroke-dasharray:5 3;
}
</style>
<script>
var svg = d3.select("body").append("svg")
    .attr("width", 960)
    .attr("height", 500);

svg.append('line')
  .attr({
    x1: 25,
     y1: 400,
    x2: 25,
     y2: 400
  })
  .transition()
  .duration(1500)
  .attr({
    x2: 25,
    y2: 15
  })
</script>

关于javascript - 使用指定样式平滑过渡路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38170427/

相关文章:

javascript - 从 javascript 数组生成动态 html 卡片

javascript - 暂停和恢复过渡

javascript - EJS 逻辑有效,但 html 未显示

javascript - 请求成功返回时更改按钮文本的问题

javascript - 如何在 D3 Javascript 中绘制一个简单的力导向图

javascript - 将新数字“推”入对象数组

javascript - 如何覆盖 D3 函数中的 .value()

svg - 有没有办法减少跟随鼠标指针的指南的滞后?

javascript - 我应该只使用 IndexedDB 还是同时使用 IndexedDB 和 chrome.storage?

javascript - 如何使用正则表达式在字符串中查找逻辑运算符?