在动画值中重用并组合SVG路径d字符串

在动画值中重用并组合SVG路径d字符串,svg,svg-animate,Svg,Svg Animate,我正在通过几个d值设置路径动画,并不断重复使用相同的形状。在下面的简化示例中,我将一个主三角形m1,5l9,19,9z变形为3个较小的三角形。为此,我必须将主三角形的d值写入的values属性中4次 在SVG2中,d属性已成为一个表示属性,因此可以由CSS设置。 因此,我们可以在css动画中使用它,使用css变量 但浏览器支持率仍然很低(到今天为止只会闪烁) :根{ --def-A:路径(“M1,5L9,19,9Z”); --def-B:路径(“M2,2 L 5,8,2 Z”); --de

我正在通过几个d值设置路径动画,并不断重复使用相同的形状。在下面的简化示例中,我将一个主三角形
m1,5l9,19,9z
变形为3个较小的三角形。为此,我必须将主三角形的d值写入
的values属性中4次


在SVG2中,
d
属性已成为一个表示属性,因此可以由CSS设置。
因此,我们可以在css动画中使用它,使用css变量

但浏览器支持率仍然很低(到今天为止只会闪烁)


:根{
--def-A:路径(“M1,5L9,19,9Z”);
--def-B:路径(“M2,2 L 5,8,2 Z”);
--def-C:路径(“M7,3L3,35,7Z”);
--def-D:路径(“M 6,4 L 6,6 4,5 Z”);
}
路径{
动画:路径变换3s线性无限;
}
@关键帧路径更改{
0%{d:var(--def-A);}
17%{d:var(--def-B);}
33%{d:var(--def-A);}
50%{d:var(--def-C);}
66%{d:var(--def-A);}
83%{d:var(--def-d);}
100%{d:var(--def-A);}
}

在SVG2中,
d
属性已成为一个表示属性,因此可以由CSS设置。
因此,我们可以在css动画中使用它,使用css变量

但浏览器支持率仍然很低(到今天为止只会闪烁)


:根{
--def-A:路径(“M1,5L9,19,9Z”);
--def-B:路径(“M2,2 L 5,8,2 Z”);
--def-C:路径(“M7,3L3,35,7Z”);
--def-D:路径(“M 6,4 L 6,6 4,5 Z”);
}
路径{
动画:路径变换3s线性无限;
}
@关键帧路径更改{
0%{d:var(--def-A);}
17%{d:var(--def-B);}
33%{d:var(--def-A);}
50%{d:var(--def-C);}
66%{d:var(--def-A);}
83%{d:var(--def-d);}
100%{d:var(--def-A);}
}

这正是我问这个问题时所希望的。我花了几个小时来寻找你所描述的那样做的能力。。。但是被淘汰了。非常感谢。这是一个浏览器编辑器,目前只适用于Chrome。你怎么知道的?我搜索了“svg2”、“path”、“presentational attribute”等组合,发现很少有文档解释您的代码/语法(因为它干净且有效,所以不需要解释,但是…)。如果可能的话,我想知道这是来自未来的功能还是一个不受支持(但优雅)的chrome bug,随时可能消失。我找到的最接近的是2016年SVG会议纪要中的一个传递参考:)再次感谢!真相是“在这里回答问题”;-)我经常不得不去看像svg2这样的规范草案,在那里,它仍然是一个“候选建议”(因此将来可能会改变,但考虑到主要浏览器已经赶上了其他属性,没有理由
d
在不久的将来不会在任何地方实现)。剩下的是稳定的CSS语法,除了
path()
函数,它也是一个函数的一部分。这正是我问这个问题时所希望的。我花了几个小时来寻找你所描述的那样做的能力。。。但是被淘汰了。非常感谢。这是一个浏览器编辑器,目前只适用于Chrome。你怎么知道的?我搜索了“svg2”、“path”、“presentational attribute”等组合,发现很少有文档解释您的代码/语法(因为它干净且有效,所以不需要解释,但是…)。如果可能的话,我想知道这是来自未来的功能还是一个不受支持(但优雅)的chrome bug,随时可能消失。我找到的最接近的是2016年SVG会议纪要中的一个传递参考:)再次感谢!真相是“在这里回答问题”;-)我经常不得不去看像svg2这样的规范草案,在那里,它仍然是一个“候选建议”(因此将来可能会改变,但考虑到主要浏览器已经赶上了其他属性,没有理由
d
在不久的将来不会在任何地方实现)。对于剩下的,这是稳定的CSS语法,除了
path()
函数,它也是