4

D3 を使用して、数百の svg 要素をレンダリングしています。ただし、ビューポートで同時に表示できるのはそのうちのいくつかだけです。

そのため、画面外にある要素を削除し、スクロールして表示に戻ったときにそれらを再作成することで、パフォーマンスを向上させることができると考えました。

これは合理的な仮定ですか?

そのようなことに利用できるツールはありますか?

4

3 に答える 3

1

非表示にしたい SVG 要素のdisplayプロパティを設定するだけです。none

document.getElementById("unwanted").style.display = `none`;
<svg>
    <circle id="wanted" cx="50" cy="50" r="50" fill="red"/>
    <circle id="unwanted" cx="100" cy="100" r="100"/>
</svg>

于 2015-05-09T10:12:53.483 に答える
1

より一般的には、要素またはグループの再利用についてdefsおよびを見てください。useたとえば、オブジェクトの「プール」を生成し、移動を適用してそれらをビューポートの内側または外側に配置することができます。

于 2015-05-08T23:43:57.423 に答える