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 相关文章推荐
javascript之对系统的toFixed()方法的修正
May 08 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
js简单的弹出框有关闭按钮
May 05 Javascript
利用Javascript仿Excel的数据透视分析功能
Sep 07 Javascript
微信小程序 video组件详解
Oct 25 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
angular6开发steps步骤条组件
Jul 04 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 Javascript
js获取图片的base64编码并压缩
Dec 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一些有意思的小区别
2006/12/06 PHP
php实现的农历算法实例
2015/08/11 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
jquery表单验证使用插件formValidator
2012/11/10 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
微信小程序使用swiper组件实现类3D轮播图
2018/08/29 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
如何基于JavaScript判断图片是否加载完成
2019/12/28 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
详解python中字典的循环遍历的两种方式
2017/02/07 Python
Python递归函数实例讲解
2019/02/27 Python
python模块导入的方法
2019/10/24 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
2020/04/27 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
法院授权委托书格式
2014/09/28 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
逃课检讨书范文
2015/05/06 职场文书
党员公开承诺书(2016最新版)
2016/03/24 职场文书
goland 设置project gopath的操作
2021/05/06 Golang
如何理解PHP核心特性命名空间
2021/05/28 PHP
Java基础-封装和继承
2021/07/02 Java/Android