【问题标题】:AngularJS SVG line gradient not workingAngularJS SVG线渐变不起作用
【发布时间】:2015-03-16 16:27:27
【问题描述】:

在 AngularJS 项目中构建 SVG 动画时,我注意到一个问题。我想要创建的是路径上的渐变效果。

路径元素是使用 SnapSVG 创建的,并被应用,id 为“progressLine”。这个元素的样式是用css定义的,是这样的。我还在我的 SVG 中手动创建了一个垂直渐变,其中我有我的渐变。问题是,如果我应用“stroke:red”规则,它会显示一个红色的笔划,但是渐变将不起作用。我在我的项目中构建了多条渐变线,所以我相信语法不是问题。 css 规则也正确引用,但渐变不会显示。有人知道这个问题并可能有解决方案吗?

#progressLine {
  stroke: url(#gradient);
  stroke-width: 2;
}
<svg id="leaderBoardSVG" width="90%" height="80%" viewBox="0 0 100 100">
  <defs>
    <linearGradient id="gradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:rgb(0,0,0);stop-opacity:0.5" />
      <stop offset="100%" style="stop-color:rgb(0,0,0);stop-opacity:1" />
    </linearGradient>
  </defs>
</svg>

【问题讨论】:

  • 您还应该包含#progressLine 的代码。
  • 看起来可行。 ----> Fiddle.
  • 无法让它在我身边工作。仍在寻找解决方案...我会尽快更新小提琴
  • 定义基本标签时会发生这种情况参见stackoverflow.com/questions/7759371/…

标签: angularjs svg gradient snap.svg


【解决方案1】:

我通过使用 js 创建渐变并将其归因于我的路径来使其工作。我假设我的 url 引用由于 AngularJS 路由的工作方式而中断。我无法确认,也没有时间研究更详细的内容,我只是通过绕过它来帮助自己。

【讨论】:

  • 我似乎遇到了这个问题。它只在 Firefox 中中断。 Chrome 似乎能够处理对渐变的引用。 Firefox 可能有问题。我会尝试通过js-code设置属性,看看是否有帮助...
  • 使用 Angular 和 node 在 Chrome 和 FF 中出现同样的问题。
  • 通过JS设置也不行,请分享简单代码
猜你喜欢
  • 2016-12-23
  • 2016-10-24
  • 2012-10-03
  • 2016-12-18
  • 2018-06-19
  • 2011-08-25
  • 2018-06-13
  • 2022-12-15
相关资源
最近更新 更多