我可以看到有很多人问这样的问题。但没有明确的答案。我还没有找到任何简单可行的解决方案,这可能是因为我问的问题比我想的要困难得多。
我在制作动画以使对象落入屏幕时使用 jQuery UI 反弹缓动效果,然后我希望它只反弹两次,就好像它是一个重物而不是非常有弹性一样。有谁知道如何做到这一点?这是 UI 中原生的 Bounce 函数,关于要更改和协调哪些变量有任何想法吗?我试图自己弄清楚,但是我在这种函数和数学逻辑方面的能力很欠缺。
原生弹跳功能:
Bounce: function ( p ) {
var pow2,
bounce = 4;
while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
},
我发现了其他反弹功能,例如:
for(var a = 0, b = 1, result; 1; a += b, b /= 2) {
if (p >= (7 - 4 * a) / 11) {
return (-Math.pow((11 - 6 * a - 11 * p) / 4, 2) + Math.pow(b, 2) );
}
}
在这两个函数中,我知道最基本形式的“p”是距离目标距离的百分比。
有没有人有任何想法?
我也发现了这个:
https://github.com/clark-pan/Bounce-Function
如果你想添加一大堆额外的代码,这真的很棒,而且我什至想出了如何获得我想要的反弹,但我宁愿做一个自定义缓动,让我实现我的目标. 比用一大堆无关代码重写上面的反弹函数。
感谢任何有解决方案的人。