html画布canvas,

  html画布canvas,

  本文实例讲述了基于html5画布实现漫天飞雪效果的方法,运行该实例可以看到很棒的下雪效果。如下图所示:

  主要代码如下:

  复制代码代码如下:DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN a href= http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。DTD http://www。w3。org/TR/XHTML 1/DTD/XHTML 1-过渡。 DTD/a

  html xmlns= a href= http://。w3。org/1999/XHTML http://www。w3。 org/1999/XHTML/a

  头

  meta http-equiv= Content-Type Content= text/html;charset=gb2312 /

  标题漫天飞雪/标题

  style type=text/css

  * {边距:0;填充:0;}/ppbody {

  /*你可以在这里使用任何类型的背景。*/

  背景:# 6b92b9

  }

  画布{

  显示:块;

  }

  /风格

  /head/PP body/PP div style= background:# 6b 92b 9;宽度:100%;高度:2000像素;/div

  画布id= canvas style= position:fixed;top:0px;左:0pxz指数:80;指针事件:无;/canvas/ppscript

  window.onload=function(){

  //画布初始化

  var canvas=文档。getelementbyid(“canvas”);

  var CTX=画布。获取上下文(“2d”);

  //画布尺寸

  var W=window.innerWidth

  var H=window.innerHeight

  画布。宽度=W;

  画布。高度=H;

  //雪花粒子

  var mp=3000//最大粒子数

  定义变量粒子=[];

  for(var I=0;我MP;我)

  {

  particles.push({

  x: Math.random()*W,//x坐标

  y: Math.random()*H,//y坐标

  r: Math.random()*3 1,//radius

  d:数学。random()* MP//密度

  })

  }

  //让我们画出雪花

  函数绘制()

  {

  ctx.clearRect(0,0,W,H);

  ctx.fillStyle=rgba(255,255,255,0.8);

  /* CTX。填充样式= # ff 0000*/

  CTX。begin path();

  for(var I=0;我MP;我)

  {

  var p=粒子[I];

  ctx.moveTo(p.x,p . y);

  ctx.arc(点x,点y,点r,0,数学* 2,真);

  }

  CTX。fill();

  update();

  }

  //函数来移动雪花

  //角度将是一个正在进行的增量标志。正弦和余弦函数将应用于它,以创建垂直和水平运动的薄片

  定义变量角度=0;

  功能更新()

  {

  角度=0.01;

  for(var I=0;我MP;我)

  {

  var p=粒子[I];

  //更新X和Y坐标

  //我们将在余弦函数中加1,以防止负值导致雪花向上移动

  //每个粒子都有自己的密度,可以用来使每个薄片的向下运动不同

  //让我们通过增加半径来使它更加随机

  p.y=Math.cos(角度p . d)1 p . r/2;

  p.x=Math.sin(角度)* 2;

  //退出时将薄片从顶部送回

  //让它更有机一点,让薄片也从左边和右边进入。

  if(p.x W p.x 0 p.y H)

  {

  if(i%3 0) //66.67%的薄片

  {

  粒子[I]={ x:数学。random()* W,y: -10,r: p.r,d:p . d };

  }

  其他

  {

  //如果薄片从右侧退出

  if(Math.sin(angle) 0)

  {

  //从泰国(Thailand)开始输入

  particles[i]={x: -5,y: Math.random()*H,r: p.r,d:p . d };

  }

  其他

  {

  //从右边进入

  particles[i]={x: W 5,y: Math.random()*H,r: p.r,d:p . d };

  }

  }

  }

  }

  }

  //动画循环

  setInterval(draw,15);

  }

  /脚本

  /body

  /html

  代码分析如下:

  这行代码改变雪花半径大小:

  复制代码代码如下:r: Math.random()*3 1,//radius

  这行代码改变雪花下落速度:

  复制代码代码如下:setInterval(draw,15);

  这条线改变了雪的密度:

  复制代码如下:var mp=3000//最大粒子数

  相信本文所描述的对大家的html5 WEB编程有一定的参考价值。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: