3

<linearGradient>Chrome はD3.js で選択しません。次のコードでは、すべての選択が空です。

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

<linearGradient>と置き換えれば<mask>大丈夫です。

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 を使用しています。グラデーションを選択する方法を提案してください。

4

1 に答える 1

8

これは Webkitのバグです。バグ レポートを参照してください。簡単に言えば、壊れているからです。変更が必要なグラデーションへの明示的な参照を保持することで、これを回避できる場合があります。

var grad1 = defs.append("linearGradient");
于 2013-08-18T11:05:05.833 に答える