雪花效果
来源:互联网 发布:人工智能语音聊天软件 编辑:程序博客网 时间:2024/04/29 00:21
一、HTML
<canvas id="myCanvas" width="1000" height="600"></canvas>
二、CSS
body {
background:#45aad7;
margin:0;
padding:0;
}
html, body{
height:100%;
width:100%;
}
#myCanvas{
height:100%;
width:100%;
display: block;
}
三、JavaScript
//获取Canvas元素
var canvas=document.getElementById("myCanvas");
//返回一个对象,该对象提供了用于在画布上绘图的方法和属性
var context=canvas.getContext("2d");
//为粒子创建一个数组
var particles = [];
//循环500次,生成500粒雪花
for( var i = 0; i < 500; i++ ) {
particles.push( {
//设置雪花的初始x、y位置
x: Math.random()*window.innerWidth,
y: Math.random()*window.innerHeight,
//设置雪花的x、y方向上的速度
vx: (Math.random()*1-.5),
vy: (Math.random()*1+.5),
//设置雪花的大小
size: 1+Math.random()*2,
//设置雪花的颜色
color: "#FFF"
//可以随机颜色:
//color:'#'+(Math.random()*0x1000000<<0).toString(16)
//说明:
//1、颜色范围十六进制:
// 0x000000~0xffffff(黑色~白色),0xffffff+1=0x1000000,取到0xffffff
// 颜色范围十进制:
// 0~16777215(黑色~白色)
//2、0x1000000<<0,转为十进制整数
//3、Math.random()*0x1000000<<0,返回0~16777215
//4、(Math.random()*0x1000000<<0).toString(16),转十六进制
} );
}
function timeUpdate(e){
//清除画布区域
context.clearRect(0, 0, window.innerWidth, window.innerHeight);
var particle;
//循环遍历所有雪花
for( var i = 0; i < 500; i++ ) {
//获取一个雪花对象
particle = particles[i];
//更新雪花的新x、y位置
particle.x += particle.vx;
particle.y += particle.vy;
//当雪花移动到窗口左侧以外时,使其显示在窗口最右侧
if(particle.x<0){
particle.x = window.innerWidth;
}
//当雪花移动到窗口右侧以外时,使其显示在窗口最左侧
if(particle.x>window.innerWidth){
particle.x = 0;
}
//当雪花移动到窗口顶部以外时,使其重新显示在窗口最顶部
if(particle.y>=window.innerHeight){
particle.y = 0;
}
//设置雪花颜色
context.fillStyle = particle.color;
//开始绘制雪花
context.beginPath();
//绘制圆点context.arc(x坐标,y坐标,半径,起始角,结束角)
context.arc(particle.x,particle.y,particle.size,0,Math.PI*2);
//闭合路径
context.closePath();
//填充颜色
context.fill();
}
}
//每过40毫秒绘制一次
setInterval( timeUpdate, 40 );
- 雪花效果
- AS3雪花飘落效果
- 雪花飘落效果
- IOS 雪花飘落效果
- ActionScript 实现雪花效果
- 雪花飘落效果
- 雪花效果前台
- 游戏编程--雪花效果
- Android 雪花飘落效果
- ios 雪花下坠效果
- 雪花效果实现
- 实现雪花飞舞效果
- 漫天雪花效果
- 雪花飘飘效果
- Android雪花下落效果
- canvas实现雪花效果
- 雪花飘落效果
- android雪花效果
- 监听 input 输入
- 红外解码
- 单片机红外解码
- 51单片机ir功能
- 算法思想 -- 分治算法
- 雪花效果
- #define 和 const常量有什么区别
- 定时器
- POJ1087 A Plug for UNIX
- Python CookBook笔记——数据结构与算法
- centos6安装jdk1.8
- 一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程
- java面试题
- Java中IO流,输入输出流概述与总结