折れ線グラフに jquery.animate 関数を使用しています。
線と円の両方のシンボルをアニメーション化します。以下のコードを参照してください。
_doLineAnimation: function() {
var clipRect = $(this.chartObj.gSeriesEle).find("#" + this.gSeriesGroupEle.id + "_ClipRect").children();
$(clipRect).animate(
{ width: parseFloat($(this.chartObj.gSeriesEle).find("#" + this.gSeriesGroupEle.id + "_ClipRect").children().attr("width")) },
{
duration: 2000,
step: function(now) {
$(clipRect).attr("width", now);
}
});
// the below code for animating the symbol
var elements = $(this.chartObj.gSymbolGroupEle).children().not("defs");
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
this.animateSymbol(element);
}
}
animateSymbol:function(element) {
var box = element.getBBox();
var centerX = box.x + (box.width / 2);
var centerY = box.y + (box.height / 2);
var scaleVal;
$(element).animate(
{
scale: 1,
},
{
duration: 2000,
step: function(now) {
scaleVal = now;
$(element).attr("transform", "translate(" + centerX + " " + centerY + ") scale(" + scaleVal + ") translate(" + (-centerX) + " " + (-centerY) + ")");
}
}
);
},
私の問題は、線と記号の両方が同時にアニメーション化されていることです。ラインがポイントに到達するたびに、シンボル アニメーション (つまり、シンボルを拡大) を実行したいと考えています。
そのため、シンボル アニメーションの開始時間を設定する必要があります。これで、0 から開始し、2000 ミリ秒後に終了します。しかし、ラインが各ポイントに到達した後、各シンボルをアニメーション化するためにしばらく待つ必要があります。
また、animate() 関数で開始時間を設定する必要があります。この時間から開始し、2000 ミリ秒後に終了します。
アニメート機能にも初期値を設定する必要があります。
例: scale:1 は 0 から開始することを意味しますが、0.5 から 1 まで開始したいのですが、animate() 関数で初期値を設定するにはどうすればよいですか?
開始時間を設定し、スケール値を 0.5 に初期化する必要があります。
私は次のようなものを期待しています:
.animate ({
begintime: 1000
duartion:2000
initialvalue :scale :0.5
});