簡體   English   中英

jQuery.easing-easeOutCubic-強調易用性

[英]jQuery.easing - easeOutCubic - emphasizing on the ease

我使用的是羅伯特( http://gsgd.co.uk/sandbox/jquery/easing/ )的jQuery輕松插件,我需要強調或拖延輕松效果。

基本上,我希望緩動效果真的很快,但在緩動過程中卻大大放慢。

我相信我可以使用jQuery.easing.easeOutCubic( null, current_time, start_value, end_value, total_time)來做到這jQuery.easing.easeOutCubic( null, current_time, start_value, end_value, total_time)但我不知道如何正確使用它。

如何做到這一點?

您無需使用緩動插件即可使用jQuery進行自定義緩動。 您只需要要使用的一個緩動函數的源JavaScript代碼。

這是從jQuery UI源代碼獲得的easeOutCubic函數。 有關更多信息,請參見此線程

$.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;
}

(以下所有示例均使用375像素的藍色正方形,其slideToggle()的持續時間為3秒。您可以更改3秒(3000毫秒)的持續時間來演示自己喜歡的效果。我選擇了3秒以使其足夠慢以查看差異。)

然后,您只需將其放在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
            );
        });

});

這是上述代碼的演示,其中包含更名為myEasingeaseOutCubic函數,並以3秒的持續時間將其應用於slideToggle()多維數據集。

http://jsfiddle.net/kJZxQ/

好了,現在您的問題是:您說您希望“ ...緩解效果確實很快,但是在緩解期間會大大降低。”

這是easeOutCubic的圖形: 三次立方

您有兩個選擇,您可以操縱緩動方程本身,或者我們可以查看其他緩動函數是否具有相似的曲線,但在緩動部分之前更陡峭(更快)。

該演示頁面直觀地顯示了所有緩動曲線...

http://api.jqueryui.com/easings/

如您所見,多條曲線的形狀類似於(7) easeOutCubic但前端更陡峭。 這里有幾個例子...


(10) easeOutQuart 緩釋 easeOutQuart示范


(13) easeOutQuint 逸出 easeOutQuint示范


(16) easeOutExpo 展覽會 easeOutExpo演示


好像最后一個一樣, easeOutExpo是可用的最陡峭的股票函數。 通過比較上面包含的方程式的差異,我們還可以操縱easeOutExpo方程式以進一步加深曲線。

這個自定義方程式快得離譜,然后大大放慢了速度。

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

比上一個更加極端...

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

上次演示的持續時間增加到6秒,以誇大效果。

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

通過比較以上演示的數學方程式,您可以看到正在操縱哪個變量以增強效果並相應地進行自己的微調。

我真的認為easeOutExpo更像您所描述的。 本質上,這是您的easeOutCubic公式,但僅在前面更快,在結尾更慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM