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 相关文章推荐
Jquery知识点二 jquery下对数组的操作
Jan 15 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
Jul 31 Javascript
js模拟点击事件实现代码
Nov 06 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 Javascript
使用impress.js制作幻灯片
Sep 09 Javascript
JS+CSS实现电子商务网站导航模板效果代码
Sep 10 Javascript
利用vue-router实现二级菜单内容转换
Nov 30 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
Mar 11 Javascript
前端开发之便利店收银系统代码
Dec 27 Javascript
TypeScript之调用栈的实现
Dec 31 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 Javascript
js+css3实现简单时钟特效
Sep 13 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代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
php入门之连接mysql数据库的一个类
2012/04/21 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
PHP实现变色验证码实例
2014/01/06 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
PHP函数extension_loaded()用法实例
2015/01/19 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
2015/02/02 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
php socket通信简单实现
2016/11/18 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python实现识别手写数字 python图像识别算法
2020/03/23 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
班级入场式解说词
2014/02/01 职场文书
平安工地建设方案
2014/05/06 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python