私は自分自身に提起した小さな問題を解決するのに苦労しています。SOにはjquerys animation() メソッドに関する質問がたくさんあることは知っていますが、同様の質問は見つかりません。逆の場合はご容赦ください。
まず第一に、それがどのように機能するか:
私は 10 個div
の s を持っていますが、それぞれの幅で個別にアニメーション化する必要があります。そのアニメーションが終了した後、フェードインするテキストを書き込む必要があります。
これdiv
は、id userBar1、...、userBar10 を取得します。コールバックメソッドで解決してみた
for(var i=0; i<barLengths.length; i++){
var length = barLengths[i];
$("#userBar"+(i+1)).animate({width: length+"px"}, function(){
var t = new Number(usValues[i]).toFixed(2);
$("#userBar"+(i+1)).html("CHF").fadeIn();
});
}
一方、barLengths は、バーがアニメーション化される幅を含む配列です。これにより、テキストが s に追加されなくなりますdiv
。を使用する場合も同様ですtext(...)
。s への書き込みをコールバック メソッドに入れない場合div
、すべてが機能しますが、テキストはアニメーションの開始時に既に表示されています。
このフィドルを確認してください。ご覧のとおり、最初の 10 個のバーは適切にアニメーション化されていますが、テキストは追加されていません。他の同じことについては、テキストが早く追加されます。テキストのフェードインを含めて、これを適切に解決するにはどうすればよいですか? テキストを別のテキストにラップせずにフェードインすることさえ可能div
ですか?