此时效果如如下:

注意:canvas默认是有一个初始化高度和宽度的,所以不用去纠结
2、画布满屏显示
JavaScript代码如下:
- //获取mycanvas画布 var can = document.getElementById("mycanvas");
- var ctx = can.getContext("2d"); //画布宽度
- var wid = window.innerWidth; //画布高度
- var hei = window.innerHeight; can.width=wid;
- can.height=hei;
此时效果如如下:

3、初始化生成固定数量的雪花
根据我们上述需求分析及知识点解读,首先雪花的数量是固定的,所以我们需要定义一个变量var snow = 100;这里假设雪花数量为100,;
生成雪花的时候,每个雪花半径、位置都不同,我们把每个雪花当做一个对象,那么这个对象的属性就包含:半径、坐标(X、Y),那么一个雪花对象可以写成var snowOject={x:1,y:10,r:5},这里就代表一个坐标为(1,10)半径为5的圆形雪花;本示例中由于半径和坐标都为随机数,故使用Math.random()分别为100个雪花生成半径、坐标(X、Y);
那我们这里是100个雪花,所以为了方便后面操作,就用一个数组保存这100个雪花对象。
JavaScript代码如下:
- //雪花数目 var snow = 100;
- //雪花坐标、半径 var arr = []; //保存各圆坐标及半径
- for (var i = 0; i < snow; i++) { arr.push({
- x: Math.random() * wid, y: Math.random() * hei,
- r: Math.random() * 10 + 1 })
- }
4、绘制雪花
上面我们已经将100个雪花半径、坐标(X、Y)生成,下面就是循环使用canvas画出雪花了(这里就是画圆),这里定义一个函数









