Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

cubic-bezier implementation for your JavaScript animation easings – MIT License

License

NotificationsYou must be signed in to change notification settings

gre/bezier-easing

Repository files navigation

BezierEasing providesCubic Bezier Curve easing which generalizes easing functions (ease-in, ease-out, ease-in-out, ...any other custom curve) exactly like in CSS Transitions.

Implementing efficient lookup is not easy because it implies projectingthe X coordinate to a Bezier Curve.This micro library uses fast heuristics (involving dichotomic search, newton-raphson, sampling) to focus onperformance andprecision.

It is heavily based on implementations available in Firefox and Chrome (for the CSS transition-timing-function property).

Usage

vareasing=BezierEasing(0,0,1,0.5);// easing allows to project x in [0.0,1.0] range onto the bezier-curve defined by the 4 points (see schema below).console.log(easing(0.0));// 0.0console.log(easing(0.5));// 0.3125console.log(easing(1.0));// 1.0

(this schema is from the CSS spec)

TimingFunction.png

BezierEasing(P1.x, P1.y, P2.x, P2.y)

Install

npm install bezier-easing

It is the equivalent toCSS Transitions'transition-timing-function.

In the same way you can define in CSScubic-bezier(0.42, 0, 0.58, 1),with BezierEasing, you can define it usingBezierEasing(0.42, 0, 0.58, 1) which have the `` function taking an X and computing the Y interpolated easing value (see schema).

License

MIT License.

Tests

Build Status

npm test

See also

Who use it?

More informations

Implementation based on thisarticle.

Contributing

You need anode installed.

Install the deps:

npm install

The library is inindex.js.

Ensure any modication will:

  • keep validating the tests (runnpm test)
  • not bring performance regression (compare withnpm run benchmark – don't rely 100% on its precision but it still helps to notice big gaps)
  • Run the visual example:npm run visual

About

cubic-bezier implementation for your JavaScript animation easings – MIT License

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp