javascript - 哪些 SVG 属性可以使用 CSS(3) 进行操作?

标签 javascript css svg

我刚刚完成了一个使用 Raphael.js 进行 svg 操作的元素。我发现将 JS 用于所有样式、悬停等操作会使 JavaScript 变得臃肿,并且没有按照我通常喜欢的方式将样式与代码分开。

然后我开始研究使用 JavaScript 绘制的纯 SVG 或直接使用 SVG 元素以及如何使用纯 CSS 来操作它们。

例如:

<svg id="circle-svg" version="1.1" xmlns="http://www.w3.org/2000/svg" 
width="400" height="300">
    <circle id="my-circle" cx="100" cy="100" r="50" />
</svg>

可以这样设计:

circle {
  fill-opacity: 0.5;
  stroke-width: 4;
  fill: #3080d0;
  stroke: #3080d0;
  transition: fill 0.5s ease;
}
circle:hover{
  stroke-width:6;
  fill: #00f;
}

只是为了玩... Fiddle

到目前为止,我发现您可以操纵颜色、描边、不透明度,甚至可以在这些属性上设置 CSS3 过渡效果,但我无法在任何地方找到明确的列表或指南,例如“所有 SVG 属性,如 可以通过SVG控制。

我很好奇,因为 Raphael 的第一个元素只是一个 POC,但很快我们将开始一个新元素,我们想要清理它的几个方面(例如将样式与 JS 混合) 并尽可能以“现代”方式进行。

是否有特定的列表或规则来定义哪些 SVG 属性和/或元素可以由 SVG 控制?此外,是否有任何注意事项,例如只能设置以特定方式创建的 svg 元素的样式,而其他...?

谢谢!

最佳答案

元素属性在SVG规范中分为CSS propertiesordinary attributes .属性不能由 CSS 操作,但 CSS 属性可以。

至于 CSS3 过渡,似乎取决于 type of the property您只需要交叉检查 CSS 属性类型和可以设置动画的类型。例如,在我看来,采用 funciri 的蒙版将被排除在 CSS3 转换动画之外。

关于javascript - 哪些 SVG 属性可以使用 CSS(3) 进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23995091/

相关文章:

javascript - 从另一个异步函数中的 Promise 解析获取结果

svg - 使用 SASS 从文件内联 SVG

html - 列表项垂直对齐

javascript - 完整的背景图像鼠标移动覆盖

javascript - d3 向圆圈添加文字

javascript - 如何以编程方式 ng-bind svg 元素上的属性?

javascript - 错误 : Uncaught SyntaxError: Unexpected token [

javascript - jQuery UI Sortable 无法将子项拖回父项

javascript - 垃圾收集是否使用给定代码从双向链表中删除已删除的项目?

JQuery UI 选择菜单 - 正文宽度展开