UNPKG

timing-function

Version:

Simple API for easing functions and Bezier curves

111 lines (77 loc) 2.09 kB
# Timing Function Simple API for easing functions and Bezier curves ## Installation Install with npm: ``` npm install timing-function ``` ## Usage ```javascript var t = require('timing-function'); // choose any timing function var func = t.get('sine.easeOut'); // func now takes a float between 0 and 1 func(0.3); // returns 0.45 // for cubic-bezier: func = t.get(0.1, 0.3, 0.4, 0.2); func(0.3); ``` ## Functions ```javascript // linear t.get('linear') // sine t.get('sine.easeIn') t.get('sine.easeOut') t.get('sine.easeInOut') // quad t.get('quad.easeIn') t.get('quad.easeOut') t.get('quad.easeInOut') // cubic t.get('cubic.easeIn') t.get('cubic.easeOut') t.get('cubic.easeInOut') // quart t.get('quart.easeIn') t.get('quart.easeOut') t.get('quart.easeInOut') // quint t.get('quint.easeIn') t.get('quint.easeOut') t.get('quint.easeInOut') // expo t.get('expo.easeIn') t.get('expo.easeOut') t.get('expo.easeInOut') // circ t.get('circ.easeIn') t.get('circ.easeOut') t.get('circ.easeInOut') // sine t.get('sine.easeIn') t.get('sine.easeOut') t.get('sine.easeInOut') // cubic-bezier (works just like css` cubic-bezier()) t.get(0.1, 0.2, 0.3, 0.4) ``` Functions are also available with direct calls: ```javascript t.sine.easeInOut(0.3) ``` ## UnitBezier Normally, using `timingFunction.get(p1x, p1y, p2x, p2y)` should suffice for cubic-beziers. But if you need to directly work with the bezier class, here is an examples for it: ```javascript var UnitBezier = require('timing-function').UnitBezier; var b = new UnitBezier(0.1, 0.2, 0.3, 0.4); // to solve a point: b.solveSimple(0.3); // to solve with custom epsilon: b.solve(0.3, 1e-6); // to reset control points: b.set(1.0, 0.5, 0.3, 0.0); ``` ## Acknowledgements Trig functions come from [MooTools](https://github.com/mootools/mootools-core/blob/master/Source/Fx/Fx.Transitions.js), and cubic-bezier calculator comes from [here](http://codepen.io/onedayitwillmake/details/EHDmw). ## License MIT