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 相关文章推荐
JScript内置对象Array中元素的删除方法
Mar 08 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
node.js中的fs.readdir方法使用说明
Dec 17 Javascript
从零学习node.js之文件操作(三)
Feb 21 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 Javascript
JavaScript中import用法总结
Jan 20 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
vue实现整屏滚动切换
Jun 29 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
Sep 21 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 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
基于mysql的论坛(2)
2006/10/09 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
2014/05/20 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python中optparser库用法实例详解
2018/01/26 Python
PyQt5实现拖放功能
2018/04/25 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
详解Python对JSON中的特殊类型进行Encoder
2019/07/15 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
学生检讨书
2015/01/27 职场文书
团拜会主持词
2015/07/04 职场文书
早恋主题班会
2015/08/14 职场文书
初二英语教学反思
2016/02/15 职场文书
Python绘制分类图的方法
2021/04/20 Python
Python进行区间取值案例讲解
2021/08/02 Python