8

私は Robert ( http://gsgd.co.uk/sandbox/jquery/easing/ ) による jQuery イージング プラグインを使用しており、イージング効果を強調したり引きずったりする必要があります。

基本的には、イーズ効果を非常に速くしたいのですが、イーズアウト中は非常に遅くなります。

を使用してこれを行うことができると信じていますがjQuery.easing.easeOutCubic( null, current_time, start_value, end_value, total_time)、適切に使用する方法がわかりません。

これはどのように達成できますか?

4

1 に答える 1

19

jQuery でカスタム イージングを行う場合、イージング プラグインは必要ありません。使用する 1 つのイージング関数のソース JavaScript コードのみが必要です。

easeOutCubicjQuery UI ソース コードから取得した関数を次に示します。詳細については、このスレッドを参照してください。

$.easing.easeOutCubic = function (x, t, b, c, d) {
    return c*((t=t/d-1)*t*t + 1) + b;
}

これで、関数を編集したり、名前を変更したりできます...

$.easing.myEasing = function (x, t, b, c, d) {
    return c*((t=t/d-1)*t*t + 1) + b;
}

(以下のすべての例では、持続時間が 3 秒の 375 ピクセルの青い正方形を使用していますslideToggle()。3 秒 (3000 ミリ秒) の持続時間を変更して、好みに合わせて効果を示すことができます。違います。)

次に、おそらくこのようなものをjQuery内に配置するだけです...

$(document).ready(function(){

        $.easing.myEasing = function (x, t, b, c, d) {
            return c*((t=t/d-1)*t*t + 1) + b;
        }

        $("#button").click(function() {
            $('#myDiv').slideToggle(
                3000, // <-- Animation Duration (3000 ms)
                'myEasing'  // <-- the Name of your easing function
            );
        });

});

これは上記のコードのデモで、easeOutCubic関数の名前が に変更され、3 秒間キューブにmyEasing適用されます。slideToggle()

http://jsfiddle.net/kJZxQ/

わかりました、あなたの問題に行きましょう: あなたは、「... イージング効果は非常に速くしたいが、イージング アウト中には大幅に遅くしたい」と言いました。

のグラフは次のとおりですeaseOutCubicイーズアウト立方体

2 つのオプションがあります。イージング方程式自体を操作するか、他のイージング関数が同様の曲線を持っているかどうかを確認できますが、イーズ アウト部分までは急勾配 (高速) です。

このデモ ページでは、すべてのイージング カーブを視覚的に示しています...

http://api.jqueryui.com/easions/

ご覧のとおり、いくつかのカーブは (7) と同様の形状ですがeaseOutCubic、フロント エンドでは急勾配になっています。ここにいくつかの例があります...


(10)- easeOutQuart イーズアウトクォート easeOutQuart デモ


(13)- easeOutQuint イーズアウトクイント easeOutQuint デモ


(16)- easeOutExpo イーズアウトエキスポ easyOutExpo デモ


最後のもののように思えeaseOutExpoますが、利用可能な最も急勾配のストック関数です。上記の方程式の違いを比較することで、方程式を操作しeaseOutExpoて曲線をさらに急勾配にすることもできます。

このカスタム方程式はとてつもなく速く、その後途方もなく遅くなります...

http://jsfiddle.net/kJZxQ/11/

前回よりさらに過激に…

http://jsfiddle.net/kJZxQ/12/

効果を誇張するために、最後のデモで持続時間を 6 秒に増やしました...

http://jsfiddle.net/kJZxQ/13/

上記のデモの数式を比較することで、効果を高めるためにどの変数を操作しているかを確認し、それに応じて独自の微調整を行うことができます。

私は本当にeaseOutExpoあなたが説明したものにもっと似ていると思います。本質的に、それはあなたのeaseOutCubic方程式ですが、前部が速くなり、最後が遅くなるだけです.

于 2011-10-13T17:45:10.523 に答える