Fork me on GitHub
</html>
<html>

Download

The 'lite' version is provided as an early Beta with the bare-bones functionality.

jBone lite 0.1 (57KB)

Please send feedback to [email protected]

Demos

What is jBone?

jBone is a JavaScript Bone Animation library for simplifying and enhancing CSS3 transformations.

It can be used in websites to bring life to the website.

jBone is a JavaScript library that allows you to build Bones and use Keyframe animation to bring the content to life. It brings the power of a Skeletal Bone Animation System to web content in a clear format.

Skeletal Bone Animation Systems have been around for years as a technique to bring game worlds to life.

Browsers Supported

FirefoxChromeInternet Explorer 9Safari

Example

jBone.addBone({ name: 'root', selectorId: 'helloWorldDemo', x: 170, y: -100, angle: 0, length: 0, thickness: 5 })
     .addChildBone({ name: 'boneHello', length: 50, thickness: 5 })
        .addContent({ name: 'idHello', type: 'span', content: 'Hello, ', pivot: jBone.Point(0, 30), offset: jBone.Point(0, 0.5) })
        .addChildBone({ name: 'boneWorld', length: 50, thickness: 5 })
           .addContent({ name: 'idWorld', type: 'span', content: 'world!', pivot: jBone.Point(0, 30), offset: jBone.Point(0, 0.5) });

jBone.addAnimation({ name: 'wave', frames: 3, duration: 5000, looped: true })
        .at(0)
           .reset()
           .rotate('boneHello', 0)
           .rotate('boneWorld', 0)
        .at(1)
           .rotate('boneHello', 30)
           .rotate('boneWorld', 50)
        .at(2)
           .rotate('boneHello', 0)
           .rotate('boneWorld', 0);

jBone.render();

Documentation (Work in Progress)

AnimationFrametop ↑

The AnimationFrame class stores information for performing FrameActions.
var animFrame = new AnimationFrame(frame, boneName, transform, frameActionList);
                

performAction(frameActionId, bone, deltaTime, parentMatrix)

Performs a FrameAction if not already run for a specific frameActionId.

grab(name, params)

Adds a FrameAction item to 'grab' a Bone or Content item.

release(name)

Adds a FrameAction item to 'release' a Bone or Content item.

addReset()

Adds a FrameAction item to 'reset' the current Animation scene.

addFunction(name, theFunction)

Adds a FrameAction item to call a JavaScript Function.

addContent(options)

Adds a FrameAction item to add Content.

removeContent(name)

Adds a FrameAction item to remove Content.

update(deltaTime, parentMatrix)

Updates the AnimationFrame by calling each of the FrameActions in the list.

interpolate(name, other, ratio)

Interpolates from the current AnimationFrame to another using the current Interpolation method. Uses the interpolation method assigned to 'animation' or the default method if none assigned.

AnimationSettop ↑

update

at

repeat

reset

addFunction

grab

release

addContent

removeContent

rotate

translate

scale

findCurrentKeyframeForBoneName

findFrameForBoneName

findCurrentAnimationFrameForBoneName

findFrameAfterForBoneName

Bonetop ↑

resetCache

branch

addChildBone

addContent

removeContent

grab

release

findBone

update

render

Contenttop ↑

resetCache

update

render

FrameActiontop ↑

performAction

HeldObjecttop ↑

resetObject

update

grab

release

Interpolationtop ↑

SetInterpolationMethod

Method

jBonetop ↑

The jBone namespace encapsulates the entire jBone library and provides access to several of the jBone internal structures such as Point and Transform.

Transform

Point

BorderWidth

onUpdate

addBone

addAnimation

findBone

findAnimation

findAnimationForBone

findCurrentAnimationFrameForBoneName

render

update

Matrixtop ↑

identity

inverse

translate

scale

skew

rotate

multiply

clone

transformPoint

cssTransform

MatrixPooltop ↑

Get

Release

Mark

Pointtop ↑

interpolate

Transformtop ↑

calculateLocalMatrix

calculateBoneMatrix

interpolate