Jump to content

Snowfall effect on your website!


Rook

12 posts in this topic

Recommended Posts

Updated

oMFeO03.jpg

Since the Holidays are here, it's time to spice up your website with some snow falling effect!

 

The simplest way to do it is by inserting this script before the closing </head> tag or another place of your choice.

<script>
var snowmax=145;
var snowcolor=new Array("#aaaacc","#ddddff","#ccccdd","#f3f3f3","#f0ffff");
var snowtype=new Array("Times","Arial","Times","Verdana");
var snowletter=".";
var sinkspeed=0.8;
var snowmaxsize=20;
var snowminsize=12;
var snowingzone=1;
var snow=new Array();
var marginbottom;
var marginright;
var timer;
var i_snow=0;
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent;
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/);
var ns6=document.getElementById&&!document.all;
var opera=browserinfos.match(/Opera/);
var browserok=ie5||ns6||opera;
function randommaker(range) {
        rand=Math.floor(range*Math.random())
    return rand
}
function initsnow() {
        if (ie5 || opera) {
                marginbottom = document.body.scrollHeight
                marginright = document.body.clientWidth-15
        }
        else if (ns6) {
                marginbottom = document.body.scrollHeight
                marginright = window.innerWidth-15
        }
        var snowsizerange=snowmaxsize-snowminsize
        for (i=0;i<=snowmax;i++) {
                crds[i] = 0;
            lftrght[i] = Math.random()*15;
            x_mv[i] = 0.03 + Math.random()/10;
                snow[i]=document.getElementById("s"+i)
                snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
                snow[i].size=randommaker(snowsizerange)+snowminsize
                snow[i].style.fontSize=snow[i].size+'px';
                snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
                snow[i].style.zIndex=1000
                snow[i].sink=sinkspeed*snow[i].size/5
                if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
                if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
                if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
                if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
                snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
                snow[i].style.left=snow[i].posx+'px';
                snow[i].style.top=snow[i].posy+'px';
        }
        movesnow()
}
function movesnow() {
        for (i=0;i<=snowmax;i++) {
                crds[i] += x_mv[i];
                snow[i].posy+=snow[i].sink
                snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i])+'px';
                snow[i].style.top=snow[i].posy+'px';

                if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
                        if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
                        if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
                        if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
                        if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
                        snow[i].posy=0
                }
        }
        var timer=setTimeout("movesnow()",50)
}
for (i=0;i<=snowmax;i++) {
        document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
}
if (browserok) {
        window.onload=initsnow
}
</script>

You can customise the script above the way you like it and you don't need to know JavaScript to do so. It's pretty readable. :3

 

-----------------------------

Another way you can add snow to your website is using Schillmania's Snowstorm.js file. It works better than the script above and that's what iOSGods is using atm ^_^.

 

More info and how to install: http://schillmania.com/projects/snowstorm/

-----------------------------

 

jQuery snow:

 

Add this inside your <head> tags:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> // Includes jQuery from Google Servers
<script type="text/javascript" src="jsnow.js"></script>
<script type="text/javascript">
$(function() {
$().jSnow();
});
</script>

Download jsnow.js from here and upload it to the same path where your index file is or change the file paths to where you saved your jsnow.js file. Example: src="/folder/jsnow.js"

 

-----------------------------

 

Snowfall effect using images & Javascript:

 

Add this inside the <head> tags:

<script type="text/javascript"> 
imageDir = "path/snow/"; 
sflakesMax = 65; 
sflakesMaxActive = 65; 
svMaxX = 2; 
svMaxY = 6; 
ssnowStick = 1; 
ssnowCollect = 0; 
sfollowMouse = 1; 
sflakeBottom = 0; 
susePNG = 1; 
sflakeTypes = 5; 
sflakeWidth = 15; 
sflakeHeight = 15; 
</script> 
<script type="text/javascript" src="path/snow/snow.js"></script>

Download this archive and upload the contents inside to your server or to an external server then link it using the script above.

 

The snowflakes here are actual images floating around on your screen so it may cause extra load on browsers and lag weak PCs. They have the best view though, true snowflakes with the edges, ^_^

Posted

I might add this to my new website! Thanks for this DiDA :D

awesome!

 

  

cool...thnx!  happy holidays!

Happy holidays to you too! :)

:xmas:

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines