svg - 设置SvgElement样式和变换的正确方法

标签 svg dart

设置svg元素的样式和变换的方法有多种。例如,您可以通过以下方式设置样式:

element.style.setProperty('opacity', '0.5');
element.style.setProperty('stroke', 'red');

要么
element.style
..opacity = '0.5'
..stroke = 'red';

您可以通过以下方式设置转换:
element.setAttribute('transform', 'translate($x, $y)');

this post中提到的方法
element.transform.baseVal.first.setTranslate(x, y);
or
element.transform.baseVal.appendItem(transform);

我的问题是,就性能而言,哪种方法更好用还是相同?

最佳答案

您的转换方法未显示matrix transforms;)...

我可以通过转换谈论自己的观点。基本上,如果要对一个元素应用多个转换,则使用matrices会比将转换值扩展为长字符串更有效。大约5年前,我用自己的基准测试(我在文件中找不到它)对此进行了测试,并记得有一个小的改进。在任何情况下,矩阵都是易于使用的扩展扩展变换。

关于svg - 设置SvgElement样式和变换的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22791926/

相关文章:

javascript - 如何从 SVG 文件制作可点击的 map ?

json - 有什么方法可以抓取/抓取谷歌搜索的 "about"部分吗?

dart - 如何在 Dart 中创建可为空的变量

dart - forEach 和 for (var o in objs) 之间的性能差异

animation - 不能使移动的容器逐渐变大,并且从屏幕中心开始变小

html - 在不知道原始颜色的情况下在悬停时减轻 svg 部分

javascript - 如何制作动画虚线 svg 线?

Flutter 为 Web 构建 - "Failed to compile application"

javascript - 如何为圆弧的 SVG 路径设置动画?

javascript - 将鼠标悬停在 SVG 路径上时,如何使 div 出现?