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最新动画教程+iso光盘下载
Jan 22 Javascript
javascript 写类方式之八
Jul 05 Javascript
Jquery 学习笔记(一)
Oct 13 Javascript
jQuery Selector选择器小结
May 06 Javascript
jQuery中复合属性选择器用法实例
Dec 31 Javascript
js实现右下角提示框的方法
Feb 03 Javascript
jquery手风琴特效插件
Feb 04 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
layui输入框只允许输入中文且判断长度的例子
Sep 18 Javascript
antd配置config-overrides.js文件的操作
Oct 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
用PHP连接Oracle数据库
2006/10/09 PHP
PHP print类函数使用总结
2010/06/25 PHP
使用php计算排列组合的方法
2013/11/13 PHP
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
javascript Excel操作知识点
2009/04/24 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js的回调函数详解
2015/01/05 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
jquery点击改变class并toggle的实现代码
2016/05/15 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
Vue2.0组件间数据传递示例
2017/03/07 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
写clone()方法时,通常都有一行代码,是什么?
2012/10/31 面试题
电子商务专业个人的自我评价
2013/12/19 职场文书
生产班组长岗位职责
2014/01/05 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
办公经费申请报告
2015/05/15 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
导游词之日月潭
2019/11/05 职场文书
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技
Go语言编译原理之源码调试
2022/08/05 Golang