D3.jsを使用して3000個のSVG円をレンダリングしています。D3.jsはうまく機能しますが、マウスを使用して移動する必要があります。私のSafariデスクトップではうまく機能しますが、Ipadでレンダリングすると...まあ、15FPSから2/1FPSに下がります。
500個の円をレンダリングすると...鋼が貧弱になります。より良いパフォーマンスを得る方法はありますか?
私はこれを使用してそれらを移動しています:
var diff = this.lastClientX - getD3MousePosition().X;
if(isNumber(diff)){
this.XLines.forEach(function(line){
line.attr("x1",parseFloat(line.attr("x1")) - diff);
line.attr("x2",parseFloat(line.attr("x2")) - diff);
})
}
this.lastClientX = getD3MousePosition().X;
- Diffは、マウスの最後の動きを取得するための単なる変数です。
- getD3MousePosition()は、mouseXとmouseYの位置を示します。
- this.Xlinesには、各SVGサークルへのjquery参照があり、レンダリング後にD£.jsから収集されます。
基本的に、Ipadで3000個のSVGサークルを滑らかな方法で移動したいと思います。
ありがとう!