JavaScript code:
var minscale=.3;
var maxscale=1;
var minspeed=.01;
var maxspeed=.08;
var wind=3;
var numflakes=500;
var context;
var snowflakeimage= new Image ();
var snowflakes=[];
Window.onload = function () {
Context = document.getElementById ("Canvas"). GetContext ("2d");
Snowflakeimage.src= "Https://dl.dropboxusercontent.com/u/1256960/Research/JS/Snowman/snowflake.png";
Snowflakeimage.onload=start;
OnResize ();
Window.onresize=onresize;
Tweenmax.to ("#head", 1.5,{startat:{rotation:-10},rotation:10,yoyo:true,transformorigin: "50% 50%", Repeat:-1,ease: Sine.easeinout});
Tweenmax.to ("#nose", 1.5,{startat:{rotation:-10},rotation:10,scalex:.8,yoyo:true,transformorigin: "5% 95%", repeat : -1,ease:sine.easeinout});
Tweenmax.to ("#scarf", 1.5,{startat:{rotation:20},rotation:-20,yoyo:true,transformorigin: "50% 10%", repeat:-1,ease : Sine.easeinout});
Tweenmax.to ("#shadow", 1.5,{startat:{x:-5},x:0,yoyo:true,repeat:-1,ease:sine.easeinout});
Tweenmax.to ("#snowman", 1.5,{startat:{rotation:-5},rotation:7,yoyo:true,transformorigin: "50% 90%", repeat:-1,ease : Sine.easeinout});
Tweenmax.to ("#snowman",. 3,{scalex:.95,scaley:1.05,yoyo:true,transformorigin: "50% 95%", Repeat:-1,ease: Sine.easeinout});
Blink ();
document.getElementById ("Snowman"). AddEventListener ("click", Knockhimdown);
}
function Knockhimdown () {
Tweenmax.to ("#snowman",. 5,{rotation:-50,ease:sine.easeout});
Tweenmax.to ("#snowman", 1.2,{delay:1.2,rotation:0,ease:sine.easeinout});
Tweenmax.set ("#mouth", {scaley:-1,transformorigin: "50% 80%"});
Tweenmax.to ("#snowman", 1.5,{delay:3,rotation:7,yoyo:true,transformorigin: "50% 90%", Repeat:-1,ease: Sine.easeinout});
Tweenmax.to ("#shadow",. 5,{x:-15,ease:sine.easeout});
Tweenmax.to ("#shadow", 1.2,{delay:1.2,x:-5,ease:sine.easeinout});
Tweenmax.to ("#shadow", 1.5,{delay:3, x:0,yoyo:true,repeat:-1,ease:sine.easeinout});
}
function Blink () {
Tweenmax.to (["#eye1, #eye2"],.1,{delay:5*math.random (), Scaley:.2,yoyo:true,repeat:1,transformorigin: "50% 50%", Oncomplete:blink});
}
function OnResize (e) {
Context.canvas.width=window.innerwidth;
Context.canvas.height=window.innerheight;
}
function Start () {
for (Var i=0;i<numflakes;i++) {
var snowflake= {initx: ((window.innerwidth+800) *math.random ()) -800,inity:-(600*math.random ()) -16,scale: Math.random (), Speed:minspeed,angle:math.random () *math.pi*2,x:0,y:0,offsetx:0};
Snowflake.x=window.innerwidth*math.random ();
Snowflake.y= ((window.innerheight+400) *math.random ())-400;
Snowflake.speed= (snowflake.scale* (maxspeed-minspeed)) +minspeed;
Snowflake.scale= (snowflake.scale* (Maxscale-minscale)) +minscale;
Snowflakes.push (Snowflake);
}
Animate ();
}
function animate () {
Context.clearrect (0,0,window.innerwidth,window.innerheight);
for (Var i=0;i<numflakes;i++) {
var snowflake= snowflakes[i];
Snowflake.x= (Math.Cos (snowflake.angle) *20) +snowflake.initx+snowflake.offsetx;
snowflake.y+= (SNOWFLAKE.SPEED*60);
Snowflake.offsetx+=wind;
Snowflake.angle+=snowflake.speed;
if (snowflake.y>window.innerheight| | Snowflake.x>window.innerwidth) {
snowflake.y=snowflake.inity;
SNOWFLAKE.X=SNOWFLAKE.INITX;
snowflake.offsetx=0;
}
Context.drawimage (Snowflakeimage,snowflake.x,snowflake.y,16*snowflake.scale,16*snowflake.scale);
}
Requestanimframe (animate);
}
Window.requestanimframe = (function () {
return Window.requestanimationframe | |
Window.webkitrequestanimationframe | |
Window.mozrequestanimationframe | |
Window.orequestanimationframe | |
Window.msrequestanimationframe | |
function (/* function */callback,/* DomElement */Element) {
Window.settimeout (callback, 1000/60);
};
})();
JavaScript for rickety effects