【问题标题】:Unable to select <linearGradient> with D3.js in Chrome无法在 Chrome 中使用 D3.js 选择 <linearGradient>
【发布时间】:2015-08-24 01:44:46
【问题描述】:

Chrome 不使用 D3.js 选择 &lt;linearGradient&gt;。在下面的代码中,所有的选择都是空的。

var defs = d3.select("body").append("svg").append("defs");
defs.append("linearGradient");
defs.append("linearGradient");
console.log(defs.selectAll("linearGradient")); // empty
console.log(defs.selectAll("lineargradient")); // empty
console.log(d3.selectAll("linearGradient")); // empty

如果您将&lt;linearGradient&gt; 替换为&lt;mask&gt; 就可以了。

var defs = d3.select("body").append("svg").append("defs");
defs.append("mask");
defs.append("mask");
console.log(defs.selectAll("mask")); // 2 elements selected

Firefox 对两者都适用。我正在使用 Chrome 28.0.1500.95。请提出一种选择渐变的方法。

【问题讨论】:

标签: google-chrome svg d3.js linear-gradients


【解决方案1】:

这是 webkit 中的一个错误——参见the bug report。简短的回答是因为它刚刚坏了。您可以通过保留对需要修改的渐变的显式引用来解决此问题,例如

var grad1 = defs.append("linearGradient");

【讨论】:

  • 啊! headdesk headdesk
猜你喜欢
  • 2015-05-22
  • 2016-10-15
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
  • 2014-08-26
  • 2012-07-29
  • 2012-10-19
相关资源
最近更新 更多