2本の線を1つにマージして1つにアニメーション化できますか?ここ は、私が持っているものの例である:D3:マージされた線を1つだけ描画する
const line1 = 'M0,100V100H0V0';
const line2 = 'M-200,200V200H0V100';
const path = d3.select('#line')
.attr('d', line1 + line2);
const pathLength = path.node().getTotalLength();
function _interpolateDashOffset() {;
const interpolate = d3.interpolateNumber(pathLength, pathLength * 2);
return() => time => interpolate(time);
}
d3.select('#line')
.attr('fill', 'none')
.attr('stroke', 'black')
.attr('stroke-width', 8)
.attr('stroke-dasharray', `${pathLength} ${pathLength}`)
.transition()
.ease(d3.easeLinear)
.duration(2000)
.attrTween('stroke-dashoffset', _interpolateDashOffset())
.on('end',() => {
console.log('path animation ended');
});
(それは、ES6を使用する唯一のFFとクロムは、W/Oエラーを開くことができます)
あなたがラインを一つに合わせ、見ての通りアニメ化されたものより。しかし、アニメーションは一番下に線を描き、一番上に線を描きます。 どういうわけかこれらの線を1つに結合し、1つの線でアニメーション化できますか?
(それだけで1行だと私は2つを組み合わせたラインと、このような動作を確認したい)
おかげ
をあなたの記事は素晴らしいですが、私は自分のために新たに、感謝の多くを発見しました。また、「Path Mini-Language」を理解した上で行をマージすることもできます。https://www.dashingd3js.com/svg-paths-and-d3js –
SVGのパスを理解するのに役立つ2つのリンクがあります。コマンド](http://vanseodesign.com/web-design/svg-paths-line-commands/)および[カーブコマンドによるパスの作成](http://vanseodesign.com/web-design/svg-paths-curve -commands /) – Ashitaka