0

自分の関数をjqueryアニメーションに渡して、自分のイージング関数を作成しようとしています。このコードはcoffeescriptで記述されており、実際に呼び出されますが、イージング機能は実行されません。単にコールバック関数のように機能します。他の誰かがこれを経験しましたか?

    easing : (x, t, b, c, d) -> 

        if ((t/=d) < (1/2.75))
            return c*(7.5625*t*t) + b

        else if (t < (2/2.75))
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b

        else if (t < (2.5/2.75))
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b

        else
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b

    show : () =>

        @container.slideDown @config.animationTime, @easing(), () =>

            @config.visible = true
4

1 に答える 1

1

細かいマニュアルから:

jQuery 1.4.3以降、イージング関数に名前を付けるオプションの文字列を使用できます。

したがって、easing引数は、イージング関数自体ではなく、使用するイージングを指定する文字列である必要があります。さらに、これはメソッド呼び出しです。

@easing()

これはイージング機能への参照ですが:

@easing

カスタムイージングを定義する場合は、プロパティを$.easing次のように追加して、グローバルに定義する必要があります。

$.easing.whatever = (x, t, b, c, d) ->
    #...

次に、名前で参照します。

@container.slideDown @config.animationTime, 'whatever', () => ...
于 2012-12-26T07:33:14.813 に答える