[英]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
);
});
});
這是上述代碼的演示,其中包含更名為myEasing
的easeOutCubic
函數,並以3秒的持續時間將其應用於slideToggle()
多維數據集。
好了,現在您的問題是:您說您希望“ ...緩解效果確實很快,但是在緩解期間會大大降低。”
這是easeOutCubic
的圖形:
您有兩個選擇,您可以操縱緩動方程本身,或者我們可以查看其他緩動函數是否具有相似的曲線,但在緩動部分之前更陡峭(更快)。
該演示頁面直觀地顯示了所有緩動曲線...
http://api.jqueryui.com/easings/
如您所見,多條曲線的形狀類似於(7) easeOutCubic
但前端更陡峭。 這里有幾個例子...
(10) easeOutQuart
easeOutQuart示范
(13) easeOutQuint
easeOutQuint示范
(16) easeOutExpo
easeOutExpo演示
好像最后一個一樣, easeOutExpo
是可用的最陡峭的股票函數。 通過比較上面包含的方程式的差異,我們還可以操縱easeOutExpo
方程式以進一步加深曲線。
這個自定義方程式快得離譜,然后大大放慢了速度。
比上一個更加極端...
上次演示的持續時間增加到6秒,以誇大效果。
通過比較以上演示的數學方程式,您可以看到正在操縱哪個變量以增強效果並相應地進行自己的微調。
我真的認為easeOutExpo
更像您所描述的。 本質上,這是您的easeOutCubic
公式,但僅在前面更快,在結尾更慢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.