如何通过AngularJS更改特定路径ID的填充颜色SVG对象

Posted

技术标签:

【中文标题】如何通过AngularJS更改特定路径ID的填充颜色SVG对象【英文标题】:How to change fill color SVG object for specific path id via AngularJS 【发布时间】:2020-09-21 19:20:16 【问题描述】:

svg:

  <path id="svg_1" stroke- stroke="black" fill="none" d="m50.610001,63.470001l12.869999,0m0,0l0,464.709991m0,0l-12.869999,0m0,0l0,-464.709991"/>
  <path id="svg_2" stroke- stroke="black" fill="none" d="m66.529999,260.670013l12.870003,0m0,0l-0.029999,267.519989m0,0l-12.870003,0m0,0l0.029999,-267.519989"/>
  <path id="svg_3" stroke- stroke="black" fill="none" d="m66.519997,275.440002l-3.039997,0"/>

html:

<div ng-include="'example.svg'"></div>

我想更改 id="svg_2" 的填充颜色,例如在单击按钮时,怎么做?

【问题讨论】:

请展示演示您的问题的演示。你可以抓住这个 plunker:plnkr.co/edit/77oUelWE5fS6IxzdqB3H?p=preview&preview 【参考方案1】:

问题是你的路径。在每一行之后,您都在使用移动到命令 (m),您将在该命令中移动到最后一点。我已经重写了前 2 条路径,但删除了移动到 (m0,0) 现在可以填充路径。第三条路径只是一条线。

现在您可以使用 css 或 bu 重置属性 fill 的值来填充路径

pathfill:red
<svg viewBox="0 0 130 600" >
<path id="svg_1" stroke- stroke="black" fill="none" d="M50.610001,63.470001l12.869999,0
   l0,464.709991
   l-12.869999,0
   l0,-464.709991"/>
  <path id="svg_2" stroke- stroke="black" fill="none" d="M66.529999,260.670013l12.870003,0
   l-0.029999,267.519989
   l-12.870003,0
   l0.029999,-267.519989"/>
  <path id="svg_3" stroke- stroke="black" fill="none" d="m66.519997,275.440002l-3.039997,0"/>
</svg>

【讨论】:

我不需要填写所有路径,只需要填写路径“svg_2” 在这种情况下,您可以只选择第二条路径并填充它。您遇到的问题是您编码路径的方式。你需要解决这个问题。然后填写您需要的任何内容。

以上是关于如何通过AngularJS更改特定路径ID的填充颜色SVG对象的主要内容,如果未能解决你的问题,请参考以下文章

填充颜​​色的CSS过渡在悬停时不起作用[重复]

使用JQuery更改svg内的填充颜色[重复]

如何在 HTML 中更改 SVG 中路径的笔触颜色和填充颜色?

使用 AngularJS,如何在视图和控制器同步特定更改后触发代码执行?

Django Angularjs如何调用具有特定ID的Http请求

如何根据Angularjs中的背景颜色自动更改文本颜色? [复制]