0

アニメーションにイージングがある場合、アニメーションはそのイージングの方程式に従います。この スクリプトは、私が言いたいことを非常によく説明しています。

イージング、任意のイージング、およびアニメーション時間 (たとえば 1000 ミリ秒) を選択したと仮定しましょう。アニメーションはイージング方程式に完全に従います。時間を 500 ミリ秒に分割すると、アニメーション期間は分割されますが、同じイージング方程式が満たされます。

私がやりたいのは、時間だけを分割するのではなく、イージング方程式も分割することです。これでアニメーションは完了しますが、完全な式に従っているのではなく、半分だけに従っています。

少し複雑ですが、解決策があるのだろうかと思います。

4

1 に答える 1

2

ステップ関数( http://api.jquery.com/animate/ )を見てみましょう。アニメーション化するコレクション/オブジェクトによっては、これが問題の解決策になる場合があります。読むべきもう1つの良い記事はhttp://www.bennadel.com/blog/1856-Using-jQuery-s-Animate-Step-Callback-Function-To-Create-Custom-Animations.htmです。お役に立てば幸いです。

ステップ関数.animate()の2番目のバージョンは、ステップオプションを提供します—アニメーションの各ステップで起動されるコールバック関数です。この関数は、カスタムアニメーションタイプを有効にしたり、アニメーションの発生時にアニメーションを変更したりする場合に便利です。2つの引数(nowとfx)を受け入れ、これはアニメーション化されるDOM要素に設定されます。

•now:各ステップでアニメーション化されるプロパティの数値•fx:アニメーション化された要素のelem、最初と最後の値の開始と終了など、いくつかのプロパティを含むjQuery.fxプロトタイプオブジェクトへの参照アニメーション化されたプロパティのそれぞれ、およびアニメーション化されているプロパティの小道具。step関数は、各アニメーション要素のアニメーションプロパティごとに呼び出されることに注意してください。たとえば、2つのリスト項目がある場合、step関数はアニメーションの各ステップで4回起動します。

$('li')。animate({不透明度:.5、
高さ: '50%'}、{ステップ:function(now、fx){var data = fx.elem.id +'' + fx.prop + ' :'+ now; $(' body')。append(''+ data +'');}});

于 2011-06-16T19:58:32.943 に答える