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 相关文章推荐
提高代码性能技巧谈—以创建千行表格为例
Jul 01 Javascript
Apply an AutoFormat to an Excel Spreadsheet
Jun 12 Javascript
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
浅谈js中的this问题
Aug 31 Javascript
详解开发react应用最好用的脚手架 create-react-app
Apr 24 Javascript
vue计算属性get和set用法示例
Feb 08 Javascript
详解JavaScript栈内存与堆内存
Apr 04 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
JS原型和原型链原理与用法实例详解
Feb 05 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下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
Javascript----文件操作
2007/01/18 Javascript
javascript的函数作用域
2014/11/12 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
详解a++和++a的区别
2017/08/30 Javascript
vue综合组件间的通信详解
2017/11/06 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
详解从react转职到vue开发的项目准备
2019/01/14 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
python hook监听事件详解
2018/10/25 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
2020/08/03 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
春节超市活动方案
2014/08/14 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
学习委员竞选稿
2015/11/20 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
python中 .npy文件的读写操作实例
2022/04/14 Python