返回Canvas实......登陆

Canvas实现动态的雪花效果

巴扎黑2017-02-15 10:44:51586

本文主要分享Canvas实现动态的雪花效果的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧

效果如下:

2017213143938426.png

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8">

 <title>Canvas</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元素</canvas>

 <script type="text/javascript">

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

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

 var practicles = [];

 for (var i = 0; i < 500; i++) {//循环生成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 i = 0; i < 500; i++) {

 var practicle = practicles[i];

 practicle.x += practicles[i].vx;

 practicle.y += practicles[i].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实现动态的雪花效果请关注PHP中文网(www.php.cn)其他文章!

最新手记推荐

• 用composer安装thinkphp框架的步骤• 省市区接口说明• 用thinkphp,后台新增栏目• 管理员添加编辑删除• 管理员添加编辑删除

全部回复(0)我要回复

暂无评论~
  • 取消回复发送