Skip to content

Instantly share code, notes, and snippets.

@f8lrebel
Created July 1, 2012 05:25
Show Gist options
  • Save f8lrebel/3026935 to your computer and use it in GitHub Desktop.
Save f8lrebel/3026935 to your computer and use it in GitHub Desktop.
A web page created at CodePen.io
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Lines Aurora &middot; CodePen</title>
<style>
html, body {
background:#000;
margin:0;
padding:0;
}
</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;
border-image: none !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>
// Kill alerts, confirmations and prompts
window.alert = function(){};
window.confirm = function(){};
window.prompt = function(){};
window.open = function(){};
window.print = function(){};
</script>
<script src="http://codepen.io/javascripts/libs/prefixfree.min.js"></script>
</head>
<body>
<canvas id="canvas"></canvas>
<script src="http://codepen.io/javascripts/libs/modernizr.js"></script>
<script>
(function() {
Number.randomInt = function(a) {
return Math.floor(Math.random() * a);
};
Number.uniformRandom = function(a, b) {
return Math.floor(a + Math.random() * (b - a));
};
var LINE_MAX = 60;
var LINE_SPEED = 20;
var FPS = 60;
var ww = window.innerWidth;
var wh = window.innerHeight;
var wwc = ww/2;
var whc = wh/2;
var lines_ = [];
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.globalCompositeOperation = 'lighter';
canvas.width = ww;
canvas.height = wh;
canvas.setAttribute('id','canvas');
initLine();
var timer = setTimeout(animate, 1000 / FPS);
function animate() {
animationRender();
timer = setTimeout(animate, 1000 / FPS);
};
function animationRender() {
ctx.clearRect(0, 0, ww, wh);
for (var j = lines_.length; j--; ) {
ctx.save();
var line = lines_[j];
var h = Math.cos(Date.now() / 6000) * 100;
line.y -= line.speed;
line.yy -= line.speed;
ctx.strokeStyle = 'hsla('+ h +', 100%, 50%,' + line.alpha + ')';
ctx.lineWidth = line.width;
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = 'hsla('+ h +', 100%, 50%,' + line.alpha * 2 + ')';
ctx.beginPath();
ctx.moveTo(line.x, line.y);
ctx.lineTo(line.x, line.yy);
ctx.stroke();
if (line.yy < (0 - line.length)) {
lines_.splice(j, 1, createLine());
}
ctx.restore();
}
};
function initLine() {
for (var i = 0; i < LINE_MAX; i++) {
lines_.push(createLine(Number.uniformRandom(0, ww), Number.uniformRandom(wh * 0.8, wh * 2)));
}
};
function createLine(x, y) {
var w_ = Number.uniformRandom(1, 3);//width
var l_ = Number.uniformRandom(wh * 0.7, wh * 1.5); //length
var x_ = x || Number.uniformRandom(0, ww);
var y_ = y || wh + l_ + 20;//move to
var yy_ = y_ - l_;//lineTo
var a_ = Number.uniformRandom(1, 8) / 10;//alpha
var speed = LINE_SPEED;
return {
x : x_,
y : y_,
yy : yy_,
length : l_,
speed : speed,
width : w_,
alpha : a_
};
};
})();
</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>
&nbsp;
<a href="/Tenderfeel/pen/3/8">Edit this Pen</a>
</div>
</body>
</html>
Number.randomInt = function(a) {
return Math.floor(Math.random() * a);
};
Number.uniformRandom = function(a, b) {
return Math.floor(a + Math.random() * (b - a));
};
var LINE_MAX = 60;
var LINE_SPEED = 20;
var FPS = 60;
var ww = window.innerWidth;
var wh = window.innerHeight;
var wwc = ww/2;
var whc = wh/2;
var lines_ = [];
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
ctx.globalCompositeOperation = 'lighter';
canvas.width = ww;
canvas.height = wh;
canvas.setAttribute('id','canvas');
initLine();
var timer = setTimeout(animate, 1000 / FPS);
function animate() {
animationRender();
timer = setTimeout(animate, 1000 / FPS);
};
function animationRender() {
ctx.clearRect(0, 0, ww, wh);
for (var j = lines_.length; j--; ) {
ctx.save();
var line = lines_[j];
var h = Math.cos(Date.now() / 6000) * 100;
line.y -= line.speed;
line.yy -= line.speed;
ctx.strokeStyle = 'hsla('+ h +', 100%, 50%,' + line.alpha + ')';
ctx.lineWidth = line.width;
ctx.shadowBlur = 8;
ctx.shadowOffsetX = 0;
ctx.shadowOffsetY = 0;
ctx.shadowColor = 'hsla('+ h +', 100%, 50%,' + line.alpha * 2 + ')';
ctx.beginPath();
ctx.moveTo(line.x, line.y);
ctx.lineTo(line.x, line.yy);
ctx.stroke();
if (line.yy < (0 - line.length)) {
lines_.splice(j, 1, createLine());
}
ctx.restore();
}
};
function initLine() {
for (var i = 0; i < LINE_MAX; i++) {
lines_.push(createLine(Number.uniformRandom(0, ww), Number.uniformRandom(wh * 0.8, wh * 2)));
}
};
function createLine(x, y) {
var w_ = Number.uniformRandom(1, 3);//width
var l_ = Number.uniformRandom(wh * 0.7, wh * 1.5); //length
var x_ = x || Number.uniformRandom(0, ww);
var y_ = y || wh + l_ + 20;//move to
var yy_ = y_ - l_;//lineTo
var a_ = Number.uniformRandom(1, 8) / 10;//alpha
var speed = LINE_SPEED;
return {
x : x_,
y : y_,
yy : yy_,
length : l_,
speed : speed,
width : w_,
alpha : a_
};
};
<canvas id="canvas"></canvas>
html, body {
background:#000;
margin:0;
padding:0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment