-
Notifications
You must be signed in to change notification settings - Fork 14
/
snow.min.js
1 lines (1 loc) · 4.07 KB
/
snow.min.js
1
!function(s){"use strict";"function"==typeof define&&define.amd?define(s):"undefined"!=typeof module&&"undefined"!=typeof module.exports?module.exports=s():"undefined"!=typeof Package?Snow=s():window.Snow=s()}(function(){"use strict";function s(s){s=s||{},this.snowmax=s.snowmax||50,this.snowcolor=s.snowcolor||new Array("#FFDA65","#00AADD","#aaaacc","#ddddff","#ccccdd","#f3f3f3","#f0ffff","#bbf7f9"),this.snowtype=s.snowtype||new Array("Times","Arial","Times","Verdana"),this.snowletter=s.snowletter||"*",this.sinkspeed=s.sinkspeed||.6,this.snowmaxsize=s.snowmaxsize||30,this.snowminsize=s.snowminsize||8,this.snowingzone=s.snowingzone||1,this.showSnow=void 0===s.showSnow||s.showSnow,this.snow=new Array,this.marginbottom,this.marginright,this.timer,this.i_snow=0,this.x_mv=new Array,this.crds=new Array,this.lftrght=new Array,this.browserinfos=window.navigator.userAgent,this.ie5=document.all&&document.getElementById&&!this.browserinfos.match(/Opera/),this.ns6=document.getElementById&&!document.all,this.opera=this.browserinfos.match(/Opera/),this.browserok=this.ie5||this.ns6||this.opera,this.showSnow&&this.startSnow()}return s.prototype.randommaker=function(s){var t=Math.floor(s*Math.random());return t},s.prototype.initsnow=function(){this.ie5||this.opera?(this.marginbottom=document.body.scrollHeight,this.marginright=document.body.clientWidth-15):this.ns6&&(this.marginbottom=document.body.scrollHeight,this.marginright=window.innerWidth-15),this.snowsizerange=this.snowmaxsize-this.snowminsize;for(var s=0;s<=this.snowmax;s++)this.crds[s]=0,this.lftrght[s]=15*Math.random(),this.x_mv[s]=.03+Math.random()/10,this.snow[s]=document.getElementById("s"+s),this.snow[s].style.fontFamily=this.snowtype[this.randommaker(this.snowtype.length)],this.snow[s].size=this.randommaker(this.snowsizerange)+this.snowminsize,this.snow[s].style.fontSize=this.snow[s].size+"px",this.snow[s].style.color=this.snowcolor[this.randommaker(this.snowcolor.length)],this.snow[s].style.zIndex=1e3,this.snow[s].sink=this.sinkspeed*this.snow[s].size/5,1==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright-this.snow[s].size)),2==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)),3==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)+this.marginright/4),4==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)+this.marginright/2),this.snow[s].posy=this.randommaker(2*this.marginbottom-this.marginbottom-2*this.snow[s].size),this.snow[s].style.left=this.snow[s].posx+"px",this.snow[s].style.top=this.snow[s].posy+"px";this.movesnow()},s.prototype.movesnow=function(){for(var s=0;s<=this.snowmax;s++)this.crds[s]+=this.x_mv[s],this.snow[s].posy+=this.snow[s].sink,this.snow[s].style.left=this.snow[s].posx+this.lftrght[s]*Math.sin(this.crds[s])+"px",this.snow[s].style.top=this.snow[s].posy+"px",(this.snow[s].posy>=this.marginbottom-2*this.snow[s].size||parseInt(this.snow[s].style.left)>this.marginright-3*this.lftrght[s])&&(1==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright-this.snow[s].size)),2==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)),3==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)+this.marginright/4),4==this.snowingzone&&(this.snow[s].posx=this.randommaker(this.marginright/2-this.snow[s].size)+this.marginright/2),this.snow[s].posy=0);var t=this;this.snowTimer=window.setTimeout(function(){t.movesnow()},50)},s.prototype.createSnow=function(){for(var s=document.getElementsByTagName("body")[0],t=document.createElement("div"),i="",n=0;n<=this.snowmax;n++)i+='<span id="s'+n+'" style="position:absolute;top:-'+this.snowmaxsize+'">'+this.snowletter+"</span>";t.innerHTML=i,this.fragment=t,s.appendChild(t)},s.prototype.startSnow=function(){this.createSnow(),this.browserok&&this.initsnow()},s.prototype.removeSnow=function(){var s=document.getElementsByTagName("body")[0];s.removeChild(this.fragment),clearTimeout(this.snowTimer),this.snowTimer=null},s.create=function(t){return new s(t)},s.version="1.0.2",s});