私は、ページが特定のスクロールターゲットに当たったときにD3.jsトランジションをトリガーするスクロールイベントリスナーを持っています。アニメーションはうまく動作し、遅れることもありませんが、各スクロール位置でトランジションが呼び出されます。これは高価ですか?最初のdraw()
の後に#mySvgShape
がfill-opacity:0.8
に設定されています。スクロール中にトランジションを呼び出すことは問題ですか?スクロール中にD3.jsトランジションを何度も呼び出すのは費用がかかりますか?
scrollPosition
がスクロールされたページのパーセンテージ(0〜1)です。
function draw(scrollPosition) {
if (scrollPosition > 0.2 && scrollPosition < 0.4) {
el.select('#mySvgShape')
.transition()
.style("fill-opacity", "0.8");
}else{
el.select('#mySvgShape')
.transition()
.style("fill-opacity", "1e-6");
}
遷移を呼び出す前に要素の不透明度を確認してください。 –
良い提案。ありがとう、ジェラルド。 – jm22
心配はいりません。デフォルトの持続時間は250msです。したがって、より良いアプローチは、アクティブな遷移があるかどうかを確認することです。 –