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 相关文章推荐
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
Aug 13 Javascript
Javascript事件实例详解
Nov 06 Javascript
JavaScript模拟push
Mar 06 Javascript
用JS动态改变表单form里的action值属性的两种方法
May 25 Javascript
无缝滚动的简单实现代码(推荐)
Jun 07 Javascript
判断数组的最佳方法(推荐)
Oct 11 Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
vue+Element实现搜索关键字高亮功能
May 28 Javascript
原生Vue 实现右键菜单组件功能
Dec 16 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
Nov 10 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
PHP+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
学习php笔记 字符串处理
2010/10/19 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
Vuex简单入门
2017/04/19 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
Python可变参数用法实例分析
2017/04/02 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python urllib爬虫模块使用解析
2019/09/05 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Numpy 理解ndarray对象的示例代码
2020/04/03 Python
python如何删除文件、目录
2020/06/23 Python
详解Python高阶函数
2020/08/15 Python
python把一个字符串切开的实例方法
2020/09/27 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
优秀家长事迹材料(2016推荐版)
2016/02/29 职场文书
初三语文教学反思
2016/03/03 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
Nginx缓存设置案例详解
2021/09/15 Servers