怎么把 html做成雪花特效,Html5的Canvas雪花特效

这个效果还不错吧,这是html5的Canvas效果,源码如下:

function createFlower(context,n,dx,dy,size,length){

context.beginPath();

context.moveTo(dx,dy+size);

var dig = 2*Math.PI/n;

for(var i=1;i

var ctrlX = Math.sin((i-0.5)*dig)*length+dx;

var ctrlY = Math.cos((i-0.5)*dig)*length+dy;

var x = Math.sin(i*dig)*size+dx;

var y = Math.cos(i*dig)*size+dy;

context.quadraticCurveTo(ctrlX,ctrlY,x,y);

}

context.closePath();

}

snowPos = [

{x:50,y:44,z:5},{x:140,y:35,z:3},

{x:360,y:20,z:1},{x:250,y:50,z:2},

{x:110,y:90,z:4},{x:310,y:85,z:2},

{x:65,y:160,z:5},{x:205,y:130,z:5},

{x:300,y:150,z:3},{x:260,y:210,z:1},

{x:375,y:215,z:3},{x:155,y:230,z:2},

{x:30,y:270,z:4},];

function fall(context){

context.fillStyle = "#000";

context.fillRect(0,0,420,280);

context.fillStyle = "#fff";

for(var i=0,len=snowPos.length;i

context.save();

context.translate(snowPos[i].x,snowPos[i].y);

context.rotate((Math.random()*6-3)*Math.PI/10);

snowPos[i].y += Math.random()*18;

if(snowPos[i].y >280){

snowPos[i].y=4;

}

createFlower(context,6,0,0,snowPos[i].z,8);

context.fill();

context.restore();

}

}

var canvas = document.getElementById("mc");

var ctx = canvas.getContext("2d");

setInterval("fall(ctx);",200);

E

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值