微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何更改已设置的 SVG 属性

如何解决如何更改已设置的 SVG 属性

我必须修改一个艺术家设计的 SVG 元素。属性“fill”和“stroke”已经设置好,唯一的目的是让艺术家在设计时需要看到它。

但是,当我加载 SVG 并尝试更改元素的“填充”和“描边”时,setAttribute("fill","rgb("255,0")) 不会更改颜色

但是,如果我要求艺术家取消设置该元素的 fill,那么 setAttribute 会起作用。然而,艺术家抱怨说他们无法使用不可见元素,也不想在每次需要编辑 SVG 时记住取消所有填充。

有没有办法以编程方式清理或强制元素的属性允许 setAttribute 工作?

附注。我试图在 w3schools 中创建一个示例代码,但它在那里工作正常。我认为我的问题与 SVG 是一个外部文档这一事实有关,我正在使用 getSVGDocument() 访问它的元素。但我不知道如何创建示例,因为这需要我没有的 Web 服务器。

谢谢!

解决方法

这是一些代码示例,希望你会觉得有用

<svg width="100" height="100">
  <circle
    id="circle1"
    cx="50"
    cy="50"
    r="40"
    stroke="green"
    stroke-width="4"
    fill="red"
   />
</svg>

<button onclick="circle1.style.fill='yellow';">
  Click to change to yellow
</button>

这对我有用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。