本章节分享一段代码实例,它利用html5实现了漫天飞雪的效果。
有需要的朋友可以做一下参考,代码其实也非常的简单,这里就不多介绍了。
代码如下:
01
02
03
04
05
06
07
08
09
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
" utf-8"
>
<
title
>蚂蚁部落</
title
>
<
style
type
=
"text/css"
>
* {
margin: 0;
padding: 0;
}
body {
background: #6b92b9;
}
canvas {
display: block;
}
</
style
>
</
head
>
<
body
>
<
div
style
=
"background:#6b92b9; width:100%;height:2000px;"
></
div
>
<
canvas
id
=
"canvas"
style
=
"position:fixed;top:0px;left:0px;pointer-events:none;"
></
canvas
>
<
script
type
=
"text/javascript"
>
window.onload=function(){
//canvas init
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
//canvas dimensions
var W=window.innerWidth;
var H=window.innerHeight;
canvas.width=W;
canvas.height=H;
//snowflake particles
var mp = 3000; //max particles
var particles = [];
for(var i = 0; i <
mp
; i++){
particles.push({
x: Math.random()*W, //x-coordinate
y: Math.random()*H, //y-coordinate
r: Math.random()*3+1, //radius
d: Math.random()*mp //density
})
}
//Lets draw the flakes
function draw(){
ctx.clearRect(0, 0, W, H);
ctx.fillStyle
=
"rgba(255, 255, 255, 0.8)"
;
/*
ctx.fillStyle
=
"#FF0000"
;*/
ctx.beginPath();
for(var
i
=
0
; i < mp; i++){
var
p
=
particles
[i];
ctx.moveTo(p.x, p.y);
ctx.arc(p.x, p.y, p.r, 0, Math.PI*2, true);
}
ctx.fill();
update();
}
//Function to move the snowflakes
var
angle
=
0
;
function update(){
angle += 0.01;
for(var
i
=
0
; i < mp; i++){
var
p
=
particle
[i];
p.y += Math.cos(angle+p.d) + 1 + p.r/2;
p.x += Math.sin(angle) * 2;
if(p.x > W || p.x <
0
|| p.y > H){
if(i%3 > 0){
particles[i] = {x: Math.random()*W, y: -10, r: p.r, d: p.d};
}
else{
if(Math.sin(angle) > 0){
particles[i] = {x: -5, y: Math.random()*H, r: p.r, d: p.d};
}
else{
particles[i] = {x: W+5, y: Math.random()*H, r: p.r, d: p.d};
}
}
}
}
}
setInterval(draw, 15);
}
</
script
>
</
body
>
</
html
>
|
原文发布时间为:2017-3-15
本文作者:admin
本文来自云栖社区合作伙伴“蚂蚁部落”,了解相关信息可以关注蚂蚁部落
原文链接:利用html5实现的飞雪效果代码实例