[英]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.