tween.js/examples/03_graphs.html

136 lines
5.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Tween.js / graphs</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../build/Tween.js"></script>
<style>
body {
margin: 0px;
}
#target {
font-size: 13px;
padding: 0px 32px;
}
</style>
<link href="http://github.com/sole/sole.github.com/raw/master/tween.js/assets/style.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="info" style="position: relative;">
<h1><a href="http://github.com/sole/tween.js">tween.js</a></h1>
<h2>03 _ graphs</h2>
<p>The curves, visualised.</p>
</div>
<div id="target"></div>
<script type="text/javascript">
var target = document.getElementById('target');
target.appendChild( createGraph( "Linear.EaseNone", TWEEN.Easing.Linear.EaseNone, false ) );
target.appendChild( createGraph( "Quadratic.EaseIn", TWEEN.Easing.Quadratic.EaseIn, true ) );
target.appendChild( createGraph( "Quadratic.EaseOut", TWEEN.Easing.Quadratic.EaseOut, false ) );
target.appendChild( createGraph( "Quadratic.EaseInOut", TWEEN.Easing.Quadratic.EaseInOut, false ) );
target.appendChild( createGraph( "Cubic.EaseIn", TWEEN.Easing.Cubic.EaseIn, false ) );
target.appendChild( createGraph( "Cubic.EaseOut", TWEEN.Easing.Cubic.EaseOut, false ) );
target.appendChild( createGraph( "Cubic.EaseInOut", TWEEN.Easing.Cubic.EaseInOut, false ) );
target.appendChild( createGraph( "Quartic.EaseIn", TWEEN.Easing.Quartic.EaseIn, true ) );
target.appendChild( createGraph( "Quartic.EaseOut", TWEEN.Easing.Quartic.EaseOut, false ) );
target.appendChild( createGraph( "Quartic.EaseInOut", TWEEN.Easing.Quartic.EaseInOut, false ) );
target.appendChild( createGraph( "Quintic.EaseIn", TWEEN.Easing.Quintic.EaseIn, false ) );
target.appendChild( createGraph( "Quintic.EaseOut", TWEEN.Easing.Quintic.EaseOut, false ) );
target.appendChild( createGraph( "Quintic.EaseInOut", TWEEN.Easing.Quintic.EaseInOut, false ) );
target.appendChild( createGraph( "Sinusoidal.EaseIn", TWEEN.Easing.Sinusoidal.EaseIn, true ) );
target.appendChild( createGraph( "Sinusoidal.EaseOut", TWEEN.Easing.Sinusoidal.EaseOut, false ) );
target.appendChild( createGraph( "Sinusoidal.EaseInOut", TWEEN.Easing.Sinusoidal.EaseInOut, false ) );
target.appendChild( createGraph( "Exponential.EaseIn", TWEEN.Easing.Exponential.EaseIn, false ) );
target.appendChild( createGraph( "Exponential.EaseOut", TWEEN.Easing.Exponential.EaseOut, false ) );
target.appendChild( createGraph( "Exponential.EaseInOut", TWEEN.Easing.Exponential.EaseInOut, false ) );
target.appendChild( createGraph( "Circular.EaseIn", TWEEN.Easing.Circular.EaseIn, true ) );
target.appendChild( createGraph( "Circular.EaseOut", TWEEN.Easing.Circular.EaseOut, false ) );
target.appendChild( createGraph( "Circular.EaseInOut", TWEEN.Easing.Circular.EaseInOut, false ) );
target.appendChild( createGraph( "Elastic.EaseIn", TWEEN.Easing.Elastic.EaseIn, false ) );
target.appendChild( createGraph( "Elastic.EaseOut", TWEEN.Easing.Elastic.EaseOut, false ) );
target.appendChild( createGraph( "Elastic.EaseInOut", TWEEN.Easing.Elastic.EaseInOut, false ) );
target.appendChild( createGraph( "Back.EaseIn", TWEEN.Easing.Back.EaseIn, true ) );
target.appendChild( createGraph( "Back.EaseOut", TWEEN.Easing.Back.EaseOut, false ) );
target.appendChild( createGraph( "Back.EaseInOut", TWEEN.Easing.Back.EaseInOut, false ) );
target.appendChild( createGraph( "Bounce.EaseIn", TWEEN.Easing.Bounce.EaseIn, false ) );
target.appendChild( createGraph( "Bounce.EaseOut", TWEEN.Easing.Bounce.EaseOut, false ) );
target.appendChild( createGraph( "Bounce.EaseInOut", TWEEN.Easing.Bounce.EaseInOut, false ) );
setInterval( loop, 1000 / 120 );
function createGraph( t, f, c ) {
var div = document.createElement( 'div' );
div.style.width = '200px';
div.style.height = '120px';
div.style.float = 'left';
if ( c ) div.style.clear = 'both';
div.appendChild( document.createTextNode( t ) );
var canvas = document.createElement( 'canvas' );
canvas.width = 180;
canvas.height = 100;
div.appendChild( canvas );
var context = canvas.getContext( '2d' );
context.fillStyle = "rgb(250,250,250)";
context.fillRect( 0, 0, 180, 100 );
context.lineWidth = 0.5;
context.strokeStyle = "rgb(230,230,230)";
context.beginPath();
context.moveTo( 0, 20 );
context.lineTo( 180, 20 );
context.moveTo( 0, 80 );
context.lineTo( 180, 80 );
context.closePath();
context.stroke();
context.lineWidth = 2;
context.strokeStyle = "rgb(255,127,127)";
var position = { x: 5, y: 80 };
var position_old = { x: 5, y: 80 };
new TWEEN.Tween( position ).to( 2, { x: 175 }).easing( TWEEN.Easing.Linear.EaseNone ).start();
new TWEEN.Tween( position ).to( 2, { y: 20 }).easing( f ).onUpdate( function() {
context.beginPath();
context.moveTo( position_old.x, position_old.y );
context.lineTo( position.x, position.y );
context.closePath();
context.stroke();
position_old.x = position.x;
position_old.y = position.y;
}).start();
return div;
}
function loop() {
TWEEN_MANAGER.update();
}
</script>
</body>
</html>