Skip to content

zeh/fween-js

Repository files navigation

Fween

Fween tweens things - object properties, function calls, HTML element styles.

It is a TypeScript project that builds into a JavaScript library.

Its main concept is simplicity. Its syntax uses a chained/stream methodology to construct sequences.

It is experimental, and under early development.

Syntax

With a getter/setter function pair:

Fween.use(getterFunc, setterFunc)
    .from(value) // Optional: set the starting value
    .to(value, durationSeconds = 0, transitionFunction = Easing.none)

With an arbitrary object:

Fween.use(obj)
    .todo

All Fween instances also include some common methods:

Fween.use(...)
    .play()
    .pause()
    .call(function)
    .wait(seconds)

Examples

A getter/setter animation, smooth scrolling in 1 second and then calling a function:

Fween.use(getScrollY, setScrollY).to(0, 1, Easing.expoOut).call(completeCallback).play();

function getScrollY() {
    return window.scrollY;
}
function setScrollY(value) {
    window.scrollTo(0, value;
}
function completeCallback() {
    console.log("Smooth scroll ended.");
}

Todo

Fween.use(obj)
	.to({x: value}, 1, Easing.expoOut);

Fween.use(element.style)
	.to({top: "valuepx"}, 1, Easing.expoOut);

Fween.use(element)
	.to("background-color: #ffffff", 1, Easing.expoOutString)