canvas漫天飞雪效果代码

快乐打工仔 分类:实例代码

canvas漫天飞雪效果代码属于前端实例代码,有关更多实例代码大家可以查看

分享一段代码实例,它利用canvas实现了满天飞雪效果。

代码实例如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style type="text/css">
* {
  margin: 0;
  padding: 0;
}
html, body {
  height: 100%;
}
#myCanvas {
  background-color: #87CEEB;
}
</style>
</head>
<body>
<canvas id="myCanvas" width="1000" height="600"></canvas>
<script type="text/javascript">
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var practicles = [];
for (var count = 0; count < 500; count++) { //循环生成500粒
  practicles.push({
    x: Math.random() * (window.innerWidth),
    y: Math.random() * (window.innerHeight),
    vx: Math.random() - 0.5,
    vy: Math.random() + 0.5,
    size: Math.random() * 3 + 1,
    color: "#FFF"
  })
}
function timeUpdate() {
  context.clearRect(0, 0, window.innerWidth, window.innerHeight); //清除画布区域
  var practicle;
  for (var count = 0; count < 500; count++) {
    var practicle = practicles[count];
    practicle.x += practicles[count].vx;
    practicle.y += practicles[count].vy;
    if (practicle.x < 0) {
      practicle.x = window.innerWidth
    }
    if (practicle.x > window.innerWidth) {
      practicle.x = 0
    }
    if (practicle.y > window.innerHeight) {
      practicle.y = 0
    }
    context.beginPath();
    context.arc(practicle.x, practicle.y, practicle.size, 0, Math.PI * 2)
    context.closePath();
    context.fillStyle = practicle.color;
    context.fill();
  }
}
setInterval(timeUpdate, 40);
</script>
</body>
</html>

canvas漫天飞雪效果代码,这样的场景在实际项目中还是用的比较多的,关于canvas漫天飞雪效果代码就介绍到这了。

回复

我来回复
  • 暂无回复内容