Canvas实现动态的雪花效果


Posted in Javascript onFebruary 13, 2017

效果如下:

Canvas实现动态的雪花效果

代码如下:

<!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>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
多广告投放代码 推荐
Nov 13 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
Aug 04 Javascript
Bootstrap实现响应式导航栏效果
Dec 28 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
jQuery使用方法
Feb 04 Javascript
easyui简介_动力节点Java学院整理
Jul 14 Javascript
详解webpack loader和plugin编写
Oct 12 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
May 19 jQuery
vue-router之解决addRoutes使用遇到的坑
Jul 19 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 Javascript
vscode中使用npm安装babel的方法
Aug 02 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 #Javascript
Bootstrap选项卡学习笔记分享
Feb 13 #Javascript
jQuery Ajax全解析
Feb 13 #Javascript
jQuery中 bind的用法简单介绍
Feb 13 #Javascript
jquery实现轮播图效果
Feb 13 #Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
Feb 13 #Javascript
利用Javascript实现简单的转盘抽奖
Feb 13 #Javascript
You might like
PR值查询 | PageRank 查询
2006/12/20 PHP
php中的登陆login
2007/01/18 PHP
php 获取本机外网/公网IP的代码
2010/05/09 PHP
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
javascript中this关键字详解
2016/12/12 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
vue cli安装使用less的教程详解
2019/07/12 Javascript
微信小程序订阅消息(java后端实现)开发
2020/06/01 Javascript
Python获取Linux系统下的本机IP地址代码分享
2014/11/07 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
电子信息专业自荐书
2014/02/04 职场文书
微信营销策划方案
2014/02/24 职场文书
公司经理聘任书
2014/03/29 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
买房协议书范本
2014/10/23 职场文书
2014年收银工作总结
2014/11/13 职场文书
2014年乡镇个人工作总结
2014/12/03 职场文书
护士年终考核评语
2014/12/31 职场文书
2015年环卫工作总结
2015/04/28 职场文书
计划生育目标责任书
2015/05/09 职场文书
教师教育教学随笔
2015/08/15 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书