用最少的资源在D3库中制作曲线动画
Least resource way to animate curve line at D3 library
D3是否有内置方法来动画绘制曲线?
我需要很多动画曲线在我的项目。我已经尝试了Jason Davies解决方案链接到示例, 链接到js文件,它工作得很好,但即使Chrome浏览器在一次30+动画曲线后开始滞后。在我的情况下,每条曲线都有自己的坐标,所以浏览器应该处理所有它们的路径,我理解这一点,但是Jason的解决方案在每次迭代时重新计算所有的路径,因为我理解这是为了通过灰点动态改变路径的能力。我是d3库的新手,所以我无法意识到,是否有可能一次计算所有路径,然后简单地将曲线绘制从0%动画到100% ?或者每件事都更容易,有简单的方法?
使用d3.js动画贝塞尔曲线的一种便宜而简单的方法是转换stroke-dasharray
属性。这个想法是以整行为一个空格开始,并以一行为一个破折号结束。
请参阅下面的示例,以获取此想法的简单实现:http://jsfiddle.net/nj37gkgq/
设置路径的d
参数将使用d3的默认动画。所以这个动画应该是正确的:
var svg = d3.select('#myelement').append('svg'),
curve = svg.append('path')
.attr('d', 'M100,200 C100,100 250,100 250,200S400,300 400,200');
curve.transition()
.attr('d', 'M0,0 C100,100 250,100 250,200S400,300 400,200');
查看JsFiddle
有关曲线命令的其他文档,请参阅官方文档
相关文章:
- 如何设置html元素填充的动画
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- 剑道网格jQuery动画()问题
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- jQuery Lazy加载动画滚动
- jquery动画可以通过编程链接吗
- Javascript将数学动画化
- 动画.CSS重播
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 如何使用jQuery在动画中期加速动画
- 使用数据上的角度更改设置集合的第一个元素的动画
- 如何使用css动画/javascript使具有背景图像的元素出现
- D3.js:设置贝塞尔曲线的动画
- 画布:制作贝塞尔曲线绘制动画
- 如何在拉斐尔JS中为曲线设置动画
- 用最少的资源在D3库中制作曲线动画
- 在D3中绘制曲线的动画
- 如何使用画布对曲线的绘制进行动画处理
- 优化画布动画(正弦曲线)