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 回答