我刚刚完成了一个使用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属性如this都可以由SVG控制。
我很好奇,因为Raphael的第一个项目只是一个POC,但很快我们将开始一个新项目,并且我们希望清理其中的几个方面(例如将样式与JS混合)并以尽可能“现代”的方式完成。
是否有特定的列表或规则定义哪些SVG属性和/或元素可以由SVG控制?此外,是否存在任何注意事项,例如只能样式化以某种方式创建的svg元素,而其他元素则不能?
谢谢!