将CSS cubic bezier easing转换为Javascript

时间:2015-04-10 08:30:17

标签: javascript tween easing

我正在寻找一种为补间生成缓动函数的方法,我需要使用Javascript函数格式,并使用标准的t, b, c, d参数。

我找到了一个很好的工具来生成CSS缓动:http://cubic-bezier.com/但输出对我来说没用。

  • 有没有办法将此格式转换为Javascript缓动功能?
  • 有没有更好的工具可以直接构建Javascript缓动函数?

所需的格式如下:

function(t, b, c, d){
    var ts = (t /= d) * t;
    var tc = ts * t;
    return b+c*(4.257575757575761*tc*ts + -7.9545454545454595*ts*ts + 0.6818181818181834*tc + 4.46969696969697*ts + -0.4545454545454546*t);
}

2 个答案:

答案 0 :(得分:6)

在JavaScript https://github.com/gre/bezier-easing

中有基于Bezier Curve的缓动库

您可以从中选择所需的参数 http://cubic-bezier.com 并将它们传递给BezierEasing函数。 例如:

BezierEasing(0.25, 0.1, 0.0, 1.0)

以下是文档中的示例:

https://jsfiddle.net/0x51ew2L/

答案 1 :(得分:0)

像这样:

element = document.getElementById('targetElement');
element.style.transitionTimingFunction = 'cubic-bezier(0.175, 0.885, 0.32, 1.275)';