Created
June 21, 2012 15:45
-
-
Save nielsdoorn/2966548 to your computer and use it in GitHub Desktop.
A web page created at CodePen.io
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Bouncing rectangle on canvas · CodePen</title> | |
<link rel="stylesheet" href="http://codepen.io/stylesheets/css/normalize.css"> | |
<style> | |
#wrapper { | |
margin: 0 auto; | |
width:1024px; | |
} | |
#bounce { | |
margin-top:10px; | |
width:1024px; | |
height:200px; | |
background-color:black; | |
color:white; | |
line-height:300px; | |
text-align:center; | |
} | |
</style> | |
<style> | |
#codepen-footer, #codepen-footer * { | |
-webkit-box-sizing: border-box !important; | |
-moz-box-sizing: border-box !important; | |
box-sizing: border-box !important; | |
} | |
#codepen-footer { | |
display: block !important; | |
position: fixed !important; | |
bottom: 0 !important; | |
left: 0 !important; | |
width: 100% !important; | |
padding: 0 10px !important; | |
margin: 0 !important; | |
height: 30px !important; | |
line-height: 30px !important; | |
font-size: 12px !important; | |
color: #eeeeee !important; | |
background-color: #505050 !important; | |
text-align: left !important; | |
background: -webkit-linear-gradient(top, #505050, #383838) !important; | |
background: -moz-linear-gradient(top, #505050, #383838) !important; | |
background: -ms-linear-gradient(top, #505050, #383838) !important; | |
background: -o-linear-gradient(top, #505050, #383838) !important; | |
border-top: 1px solid black !important; | |
border-bottom: 1px solid black !important; | |
border-radius: 0 !important; | |
box-shadow: inset 0 1px 0 #6e6e6e, 0 2px 2px rgba(0, 0, 0, 0.4) !important; | |
z-index: 300 !important; | |
font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, sans-serif !important; | |
letter-spacing: 0 !important; | |
word-spacing: 0 !important; | |
} | |
#codepen-footer a { | |
color: #a7a7a7 !important; | |
text-decoration: none !important; | |
} | |
#codepen-footer a:hover { | |
color: white !important; | |
} | |
</style> | |
<script src="http://codepen.io/javascripts/libs/prefixfree.min.js"></script> | |
</head> | |
<body> | |
<div id="wrapper"> | |
<canvas id="bounce" width="1024" height="200"> </canvas> | |
</div> | |
<script src="http://code.jquery.com/jquery-latest.js"></script> | |
<script> | |
(function() { | |
var canvas; | |
var x,y,rotatie,xVerplaatsing,yVerplaatsing; | |
function init() { | |
canvas = document.getElementById("bounce"); | |
x = canvas.width / 2; | |
y = canvas.height / 2; | |
rotatie = 0; | |
xVerplaatsing = 1; | |
yVerplaatsing = 1; | |
} | |
function initAnimation() { | |
// animatie | |
// vraag aan de browser om maximaal 60 fps te animeren | |
window.requestAnimFrame = (function(callback){ | |
return window.requestAnimationFrame || | |
window.webkitRequestAnimationFrame || | |
window.mozRequestAnimationFrame || | |
window.oRequestAnimationFrame || | |
window.msRequestAnimationFrame || | |
function(callback){ | |
window.setTimeout(callback, 1000 / 60); | |
}; | |
})(); | |
(function animloop(){ | |
requestAnimFrame(animloop); | |
verplaatsBlokje(); | |
tekenScherm(); | |
})(); | |
} | |
function verplaatsBlokje() { | |
x = x + xVerplaatsing; | |
y = y + yVerplaatsing; | |
if (x < 0 || x > canvas.width) { | |
xVerplaatsing = 0-xVerplaatsing; | |
} | |
if (y < 0 || y > canvas.height) { | |
yVerplaatsing = 0-yVerplaatsing; | |
} | |
rotatie = rotatie + 0.01; | |
rotatie = rotatie % (Math.PI * 2); | |
} | |
// het tekenen van het scherm | |
function tekenScherm() { | |
var ctx = canvas.getContext("2d"); | |
// canvas leeg maken, het canvas is 800px breed en 640px hoog | |
ctx.clearRect(0, 0, canvas.width, canvas.height); | |
ctx.save(); | |
ctx.translate(x,y); | |
ctx.rotate(rotatie); | |
tekenBlokje(ctx); | |
ctx.restore(); | |
} | |
function tekenBlokje(ctx) { | |
ctx.fillStyle = "red"; | |
ctx.fillRect(-20,-20,40,40); | |
} | |
$(document).ready(function () { | |
console.log('doc ready'); | |
init(); | |
initAnimation(); | |
}); | |
})(); | |
</script> | |
<div id="codepen-footer"> | |
<a style="color: #f73535 !important;" href="https://codepen.wufoo.com/forms/m7x3r3/def/field14=" onclick="window.open(this.href, null, 'height=517, width=680, toolbar=0, location=0, status=1, scrollbars=1, resizable=1'); return false">Report Abuse</a> | |
| |
<a href="/nielsdoorn/pen/bouncebounce/14">Edit this Pen</a> | |
</div> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var canvas; | |
var x,y,rotatie,xVerplaatsing,yVerplaatsing; | |
function init() { | |
canvas = document.getElementById("bounce"); | |
x = canvas.width / 2; | |
y = canvas.height / 2; | |
rotatie = 0; | |
xVerplaatsing = 1; | |
yVerplaatsing = 1; | |
} | |
function initAnimation() { | |
// animatie | |
// vraag aan de browser om maximaal 60 fps te animeren | |
window.requestAnimFrame = (function(callback){ | |
return window.requestAnimationFrame || | |
window.webkitRequestAnimationFrame || | |
window.mozRequestAnimationFrame || | |
window.oRequestAnimationFrame || | |
window.msRequestAnimationFrame || | |
function(callback){ | |
window.setTimeout(callback, 1000 / 60); | |
}; | |
})(); | |
(function animloop(){ | |
requestAnimFrame(animloop); | |
verplaatsBlokje(); | |
tekenScherm(); | |
})(); | |
} | |
function verplaatsBlokje() { | |
x = x + xVerplaatsing; | |
y = y + yVerplaatsing; | |
if (x < 0 || x > canvas.width) { | |
xVerplaatsing = 0-xVerplaatsing; | |
} | |
if (y < 0 || y > canvas.height) { | |
yVerplaatsing = 0-yVerplaatsing; | |
} | |
rotatie = rotatie + 0.01; | |
rotatie = rotatie % (Math.PI * 2); | |
} | |
// het tekenen van het scherm | |
function tekenScherm() { | |
var ctx = canvas.getContext("2d"); | |
// canvas leeg maken, het canvas is 800px breed en 640px hoog | |
ctx.clearRect(0, 0, canvas.width, canvas.height); | |
ctx.save(); | |
ctx.translate(x,y); | |
ctx.rotate(rotatie); | |
tekenBlokje(ctx); | |
ctx.restore(); | |
} | |
function tekenBlokje(ctx) { | |
ctx.fillStyle = "red"; | |
ctx.fillRect(-20,-20,40,40); | |
} | |
$(document).ready(function () { | |
console.log('doc ready'); | |
init(); | |
initAnimation(); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id="wrapper"> | |
<canvas id="bounce" width="1024" height="200"> </canvas> | |
</div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#wrapper { | |
margin: 0 auto; | |
width:1024px; | |
} | |
#bounce { | |
margin-top:10px; | |
width:1024px; | |
height:200px; | |
background-color:black; | |
color:white; | |
line-height:300px; | |
text-align:center; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment