divをいくつか持っていて、その子に.animate({opacity:0},400, function(){});
を使用しているとします。 アニメーションが完了するまでの残り時間を取得することは可能ですか?残りの200ミリ秒など、アニメーションがない場合は0ですか?おかげさまで アニメーションの残り時間を得る方法はありますか?
答えて
私は、残り時間を取得するためにステップ機能を使用する例を作成しました:
(get state!
ボタンをクリックしてアニメーションを停止し、残りの時間を取得してください)
demo with distance
demo with opacity
距離の例のjQuery:
var time = 4000;
var distance = 300;
var currentTime = 0;
$('#ball').animate({
left: distance
}, {
duration: time,
step: function (now, fx) {
currentTime = Math.round((now * time)/distance);
var data = fx.prop + ' ' + Math.round(now) + '; <b>' + currentTime + 'ms</b> ';
$('body').append('<p>' + data + '</p>');
},
easing: 'linear'
});
$('#getTime').click(function() {
$('#ball').stop();
$('body').prepend('<p>currentTime is:' + currentTime + ' ms; REMAINING: ' + (time - currentTime) + 'ms</p>');
});
- あなたは、私が現在アニメーション化され(
left
)プロパティを取得するためにanimation step
内fx.prop
を使用する方法を見ることができます。 - あなたはどのように見ることができます:私たちは簡単にいくつかの簡単な数学(
(now*time)/distance
)によって「停止/一時停止」状態を取得することができ、アニメーションの時間と距離を知ること(不透明度を、何でも...)と返さnow
値のおかげで。
ありがとうこれは非常に有用です!また、ステップ関数を可変書込みに限定すれば、パフォーマンスが大幅に低下することはありません。とにかく1ミリ秒か何かごとに呼ばれることはありません。 – Anonymous
@ user1125062私たちは既にアニメーションを実行しているものにのみアクセスしているので、そうしてはいけません。 –
私はあなたがそれを必要としない理由はわかりませんが、step
あなたは、この値を抽出することができます:
ステップ関数
.animateの第二のバージョンは()ステップのオプションを提供 - アニメーションの各ステップで発生するコールバック関数。この関数は、カスタムアニメーションタイプを有効にしたり、アニメーションを変更したりするときに便利です。 2つの引数(nowとfx)を受け取り、これはアニメートされるDOM要素に設定されます。
今:そのようなアニメーション要素のELEMような特性の数を含んjQuery.fxプロトタイプオブジェクトへの参照、開始:各ステップ
FXにアニメーション化されるプロパティの数値それぞれanimatedプロパティの最初と最後の値で終了し、アニメーション化されているプロパティのpropを返します。あなたがより良い[gdoronによって投稿として]あなたはstep
機能 を使用することができる方法を理解するのに役立つ
すべての人が話している機能を聞いてください。step
私はかつてあなたがやっていることを必要としていました。これは単純に、アニメーションの時間(以前はjQueryにこの番号を与えて以来、あなたに知られていたはずです)と商{現在の不透明度とターゲットの不透明度。次に、その商に総アニメーション時間を掛け、総時間から合計を差し引かせます。そのような単純な。
擬似コード:ちょうど好奇心のうち
func calculate-time-left-in-a-running-fade-in-animation:
{
var current_opacity = $elem.css('opacity');
var target_opacity = this.getTargetOpacity();
var total = this.getTotalAnimationTime();
var quotient = current_opacity/target_opacity;
return total - quotient * total;
}
興味深いアプローチは、それにもかかわらず!精度が重要であれば、ステップは唯一の方法です。 – Anonymous
属性値を自分で取得するか、now変数を使用することは、アニメーションが一時停止されている限り、全く同じことです。 jQueryのstep-example @roXonでは、アニメーションのすべてのステップで多くのオーバーヘッドが発生します。例のようにグローバル変数を実際に導入するかもしれません。計算の前にアニメーションを一時停止し(やはり例のように)、アニメーションをプログラムで再開する場合は、全く違いはありません。私は実行中のアニメーションの下でこの計算された値を得ることは同じ結果を生み出すと言うでしょう。 –
ステップロジックのストアドプロダクト、残存時間の計算値はライブリストと似ていませんが、値は最大正確な値に更新されません。そして、あなたがどこにいてもいつでもあなたが使っている "古い"計算だけではありません。理論的には精度を妨げるべきであるステップ関数であるこの情報格差の橋渡しを担う中間の人間がいます。しかし、あなたが残りの時間を知る必要があるときに、まったく同じ計算を正確に行うならば、正確ではないでしょうか?また、コードの可読性と処理オーバーヘッドの両方で安価です。 –
- 1. シェルスクリプト実行の残り時間を取得する方法は?
- 2. CakePHPから残りのセッション時間を取得するには?
- 3. iPodの残り時間と再生時間を模倣する方法
- 4. 時間配列を時間順にソートする方法はありますか?
- 5. ポップアップウィンドウ/残り時間のメッセージ
- 6. @ post.created_at(秒)までの残り時間
- 7. 残り時間の見積もりは何ですか?
- 8. ビルド時間を短縮する方法/ XCodeでコンパイル時間を短縮する方法はありますか?
- 9. Windowsがサスペンドするまでの時間は残ります
- 10. UILabelのtextAlignmentをアニメーション化する方法はありますか?
- 11. 残り時間を見つける
- 12. Animation.Artistアニメーションを保存する方法はありますか?
- 13. mySqlを使用して残りの日、時間、分を取得
- 14. アプリの購入時に確認する残りのAPIはありますか?
- 15. jprogressbarで残りの時間を表示しますか?
- 16. Chromeデベロッパーツールから時間グラフをエクスポートする方法はありますか?
- 17. UIModalTransitionStyleの速度/時間を調整する方法はありますか?
- 18. mysqlの接続時間を確認する方法はありますか?
- 19. 時間帯はありますか?
- 20. CSSアニメーションのプロパティはアニメーション後に残ります
- 21. 時間を計算する良い方法はありますか?
- 22. PDFで時間制限を設定する方法はありますか?
- 23. editTextの日付と時刻を取得する方法はありますか?
- 24. まだログを残している間にユーザーにエラーを表示する方法はありますか?
- 25. セレンで待ち時間とスリープを避ける方法はありますか?
- 26. NEsperにイベントを挿入してから時間を取得する方法はありますか?
- 27. build vnextビルドエージェントの実行時間を増やす方法はありますか?
- 28. jQuery:divの外にある "残りの領域"を選択する方法はありますか?
- 29. 国や時間帯からロケールを取得する方法はありますか?
- 30. O(1)時間にセットからアイテムを取得する方法はありますか?
...あなたは、その値を必要とする理由? @ RokoC.Buljan。 –
。それは私が推測する趣味だ。彼はコレクションアニメーションの時代です。 – gdoron
私はいくつかのコールバックを子にキューイングするのに問題があります。常にトリガーするとは限りません。子キューを判別するのは簡単ではないので、setTimeoutを使ってより信頼性の高いものを試してみたかったのです。 – Anonymous