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 相关文章推荐
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
js实现倒计时(距离结束还有)示例代码
Jul 24 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
js改变透明度实现轮播图的算法
Aug 24 Javascript
js微信支付实现代码
Dec 22 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
详解利用jsx写vue组件的方法示例
Jul 17 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
ElementUI之Message功能拓展详解
Oct 18 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 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
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
jQuery Div中加载其他页面的实现代码
2009/02/27 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
element-ui 表格数据时间格式化的方法
2018/08/24 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
vuex管理状态仓库使用详解
2020/07/29 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
python错误处理详解
2014/09/28 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
python中ASCII码和字符的转换方法
2018/07/09 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
基于python二叉树的构造和打印例子
2019/08/09 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
简历中的自我评价怎么写
2014/01/29 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
作弊检讨书1000字
2014/02/01 职场文书
大学毕业感言一句话
2014/02/06 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书