Realistic Raindrops Effect with Canvas and Rainyday.js

File Size: 16.1 KB
Views Total: 14503
Last Update:
Publish Date:
Official Website: Go to website
License: MIT
   
Realistic Raindrops Effect with Canvas and Rainyday.js

rainyday.js is an awesome javascript library for creating a realistic raindrops effect on your webpage using Html5 Canvas element and javascript.

How to use it:

1. Include rainyday.js javascript library in the head section of your page

<script src="rainyday.js" type="text/javascript"></script>

2. The html

<body onload="demo();">
<div id="sound" style="z-index: -1;"></div>
<img id="background" src="" />
<div id="cholder">
<canvas id="canvas"></canvas>
</div>
</body>

3. The javascript. Opening demo.html?imgur=I2tZMAg&youtube=Ftu5ZpAk8dM will load this image with this sound in the background!

<script type="text/javascript">
function getURLParameter(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null;
}

 function demo() {
var image = document.getElementById('background');
image.onload = function() {
var engine = new RainyDay('canvas','background', window.innerWidth, window.innerHeight, 1, getURLParameter("blur") || 20);

var preset = getURLParameter("preset") || 1;
if (preset == 1) {
engine.gravity = engine.GRAVITY_NON_LINEAR;
engine.trail = engine.TRAIL_DROPS;
engine.rain([ engine.preset(3, 3, 0.88), engine.preset(5, 5, 0.9), engine.preset(6, 2, 1) ], 100);
} else if (preset == 2) {
engine.gravity = engine.GRAVITY_NON_LINEAR;
 engine.trail = engine.TRAIL_DROPS;
 engine.VARIABLE_GRAVITY_ANGLE = Math.PI / 8;
engine.rain([ engine.preset(0, 2, 0.5), engine.preset(4, 4, 1) ], 50);
} else if (preset == 3) {
engine.gravity = engine.GRAVITY_NON_LINEAR;
 engine.trail = engine.TRAIL_SMUDGE;
engine.rain([ engine.preset(0, 2, 0.5), engine.preset(4, 4, 1) ], 50);
}
};
image.crossOrigin = "anonymous";
image.src="http://i.imgur.com/" + getURLParameter('imgur') + ".jpg";

var youtube = getURLParameter("youtube");
if (youtube) {
var div = document.getElementById("sound");
var player = document.createElement('iframe');
player.frameborder = "0";
if (!getURLParameter("novideo")) {
div.style.zIndex = 1000;
player.setAttribute("class", "video");
} else {
player.height = "1";
player.width = "1";
}
player.src = "https://youtube.com/embed/" + youtube + "?autoplay=1&controls=0&showinfo=0&autohide=1&loop=1";
div.appendChild(player);
}
 }
</script>

This awesome jQuery plugin is developed by maroslaw. For more Advanced Usages, please check the demo page or visit the official website.