用于 HTML-JavaScript 动画的简单 SVG 绘图

发布于 2024-11-15 07:05:27 字数 459 浏览 4 评论 0原文

我正在尝试在 SVG 中绘制一个简单的电池符号,该符号将使用 HTML/JavaScript 进行动画处理:

http://pastebin.com/ utM4BTRS

我想在 SVG 内的“电池电量”绘图上动态操作遮罩,但遮罩未按 Inkscape 中绘制的方式显示。 Firefox 和 Webkit 都只显示该部分的一小部分(尚未涉及 JavaScript):

http://tinypic.com/view.php?pic=deu44m&s=7 (Inkscape 绘图在左侧,Firefox 渲染在右侧)

由于我是 SVG 新手:有什么问题 这里?

I'm trying to draw a simple battery symbol in SVG which will be animated using HTML/JavaScript:

http://pastebin.com/utM4BTRS

I'd like to dynamically manipulate the mask over the "battery level" drawing inside the SVG but the mask is not displayed as drawn in Inkscape. Firefox and Webkit both display only a tiny bit of that part (no JavaScript involved yet):

http://tinypic.com/view.php?pic=deu44m&s=7 (Inkscape drawing on the left, Firefox rendering on the right)

Since I am new to SVG: what's the problem here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仙气飘飘 2024-11-22 07:05:27

除非您需要在蒙版中使用渐变,否则您应该尝试使用剪辑路径。其实,如果能完全不戴口罩那就更好了。

现在,要回答您的问题,您可以从 mask 元素中删除 maskUnits="userSpaceOnUse" ,它将起作用。另外,导出时您应该从 inkscape 保存为“Plain SVG”,这会使 svg 输出看起来更干净。

Unless you need to use e.g gradients in the mask you should try to use clip-path instead. Actually, if you can remove the use of mask completely that's even better.

Now, to answer your question, you can remove maskUnits="userSpaceOnUse" from the mask element and it will work. Also you should save as "Plain SVG" from inkscape when exporting, it makes the svg output look a tad cleaner.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文