jul/js/snow.js
2015-08-08 22:45:34 -07:00

85 lines
2.6 KiB
JavaScript

var snow = new Array();
var captions = new Array();
var halt = 0;
captions[ 0] = "happy 100000th post!";
var snowfnam = new Array();
snowfnam[ 0] = "/images/confetti/confetti_blue.png";
snowfnam[ 1] = "/images/confetti/confetti_yellow.png";
snowfnam[ 2] = "/images/confetti/confetti_green.png";
snowfnam[ 3] = "/images/confetti/confetti_red.png";
var MaxFPS = 60;
function update_snow() {
if (halt == 1) { return null; }
var innerHeight = window.innerHeight;
var innerWidth = window.innerWidth;
for (var i = 0; i < snow.length; i++) {
var thisflake = snow[i]; // local referencing.
var _posy = thisflake.posy;
var _posx = thisflake.posx;
if ((_posy + 8) > innerHeight || (_posx + 8) > innerWidth || (_posx - 8) < 0) {
_posy = 0;
left = Math.random()*innerWidth;
thisflake.style.left = left;
_posx = left;
thisflake.scrollfactor_x = Math.random()*-5;
thisflake.scrollfactor_y = (Math.random()*15) + .5;
if (Math.round(Math.random()*10) % 5 == 0) {
thisflake.scrollfactor_x *= -1;
}
}
_posy += thisflake.scrollfactor_y;
_posx += thisflake.scrollfactor_x;
thisflake.style.top = _posy;
thisflake.style.left = _posx;
thisflake.posy = _posy;
thisflake.posx = _posx;
}
}
function snow_halt() {
halt = 1;
}
function snow_unhalt() {
halt = 0;
}
function drawsnow() {
var flakes = 25;
var element = document.createElement("div");
element.id = "snow_canvas";
document.body.appendChild(element);
for (var i = 0; i < flakes; i++) {
var flakeimg = document.createElement("img");
flakeimg.style.display = "block";
flakeimg.style.position = "fixed";
flakeimg.style.zIndex = 1;
pleft = Math.random()*window.innerWidth;
ptop = Math.random()*window.innerHeight;
flakeimg.style.left = pleft + "px";
flakeimg.style.top = ptop + "px";
flakeimg.scrollfactor_x = (Math.random() * 2 - 1);
flakeimg.scrollfactor_y = (Math.random()*10) + 1;
// if (Math.round(Math.random()*10) % 5 == 0) {
// flakeimg.scrollfactor_x *= -1;
// }
flakeimg.posx = pleft;
flakeimg.posy = ptop;
flakeimg.src = snowfnam[Math.round(Math.random()*3)];
flakeimg.title = captions[0];
temp = Math.round(Math.random() * 4 + 3);
flakeimg.width = temp;
flakeimg.height = temp;
snow.push(flakeimg);
element.appendChild(flakeimg);
}
setInterval(update_snow, 66);
}
window.addEventListener("load", function() {drawsnow();}, false);
window.addEventListener("blur", function() {snow_halt()}, false);
window.addEventListener("focus", function() {snow_unhalt()}, false);