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 入门·JavaScript 具有全范围的运算符
Oct 01 Javascript
javascript 按回车键相应按钮提交事件
Nov 02 Javascript
TextArea 控件的最大长度问题(js json)
Dec 16 Javascript
js获取单选框或复选框值及操作
Dec 18 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
Jun 24 Javascript
Jquery实现自定义tooltip示例代码
Feb 12 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
Oct 31 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
Node.js实现断点续传
Jun 23 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 addslashes()与addclashes()函数的区别和比较
2013/06/24 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php缩小png图片不损失透明色的解决方法
2013/12/25 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
PHP微信红包API接口
2015/12/05 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
php可变长参数处理函数详解
2017/02/22 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
javascript进行数组追加方法小结
2014/06/16 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
vue实现购物车案例
2020/05/30 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
Python中的高级函数map/reduce使用实例
2015/04/13 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
python 常见的反爬虫策略
2020/09/27 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python