gpt4 book ai didi

javascript - jQuery 弹性缓动方程

转载 作者:可可西里 更新时间:2023-11-01 01:24:14 25 4
gpt4 key购买 nike

我如何修改这个 jQuery 缓动函数来产生不那么夸张的弹跳?

$.easing.easeOutElasticSingleBounce = function (x, t, b, c, d) {
var s=1.70158;var p=0;var a=c;
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
};

我希望生成一个模拟这个的缓动函数:

http://sandbox.scriptiny.com/tinyslider2/

tinyslider2 使用类似的函数,看起来像这样:

new Function(this.n+'.slide('+(i==1?t+(12*d):t+(4*d))+','+(i==1?(-1*d):(-1*d))+','+(i==1?2:3)+','+a+')')

但我今天似乎无法理解如何将 tinyslider2 方程式放入 jQuery 缓动格式中。如果有人能给我举个例子,我将不胜感激。

更新

这个等式非常接近:

$.easing.custom = function (x, t, b, c, d) {
var s = 1.70158;
if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
}

我只需要结束反弹而不需要开始反弹。

最佳答案

http://timotheegroleau.com/Flash/experiments/easing_function_generator.htm允许您直观地创建缓动函数。如果您切换右上角的 F5/FMX 单选按钮,它会以 JavaScript 提供输出。

在不知道确切您想要的效果的情况下,这应该让您非常接近。

$.easing.tinyslider = function(x, t, b, c, d) {    
ts=(t/=d)*t;
tc=ts*t;
return b+c*(-8.1525*tc*ts + 28.5075*ts*ts + -35.105*tc + 16*ts + -0.25*t);
}

否则请摆弄缓动函数生成器并尝试新选项或查找 http://commadot.com/jquery/easing.php获取更多资源。

jsfiddle

http://jsfiddle.net/XRF6J/

这个回答很有趣,我一直想知道这些缓动函数是如何工作的。

关于javascript - jQuery 弹性缓动方程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com