利用html5实现的飞雪效果代码实例

本文提供了一段使用HTML5实现的漫天飞雪效果代码实例。通过简单的代码即可在网页上展示出逼真的雪花飘落场景,适用于冬季主题网站或个人主页的装饰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章节分享一段代码实例,它利用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" >
   < meta name = "author" content = "http://www.softwhy.com/" />
   < 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实现的飞雪效果代码实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值