Canvas实现放射线动画效果


Posted in Javascript onFebruary 15, 2017

效果如下:

Canvas实现放射线动画效果

代码如下:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <style>
 body {background: #000;overflow: hidden;margin: 0;padding: 0;}
 #canv {width: 45%;margin: 5% 30%;animation: wheel-rotate 30s linear infinite;}
 @keyframes wheel-rotate {
 from {
 transform: rotate(0deg);
 }
 to {
 transform: rotate(360deg);
 }
 }
 </style>
 </head>
 <body>
 <canvas id="canv" width="600" height="600"></canvas>
 <script type="text/javascript">
 var c;
 var $;
 var w = 600;
 var h = 600;
 constant = 15;
 var rad = 300;
 var timeout = 0;
 c = document.getElementById("canv");
 $ = c.getContext("2d");
 drawLines();
 function drawLines() {
 $.fillRect(0,0,w,h);
 $.translate(w/2,h/2);
 for (var i = 0; i < 25; i++) {
 for (var n = -45; n <= 45; n+=constant) {
 setTimeout("draw("+n+");",100 * timeout);
 timeout++;
 }
 }
 }
 function draw(n){
 $.beginPath();
 $.moveTo(0,rad);
 var radians = Math.PI/180*n;
 var x = (rad * Math.sin(radians)) / Math.sin(Math.PI/2 - radians);
 $.lineTo(x,0);
 if (Math.abs(n) == 45) {
 $.strokeStyle=rndColor();
 $.lineWidth=2;
 } else if (n == 0) {
 $.strokeStyle="rgb(200,200,200)";
 $.lineWidth=.5;
 } else {
 $.strokeStyle="rgb(110,110,110)";
 $.lineWidth=.5;
 }
 $.stroke();
 $.rotate((Math.PI/180)*15);
 }
 function rndColor() {
 var r = 255*Math.random()|0,
  g = 255*Math.random()|0,
  b = 255*Math.random()|0;
 return 'rgb(' + r + ',' + g + ',' + b + ')';
 }
 function myrefresh(){
  //window.location.reload();
  //drawLines()
 }
 //setTimeout('myrefresh()',100*175);
 </script>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
window.ActiveXObject使用说明
Nov 08 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
Mar 06 Javascript
初学node.js中实现删除用户路由
May 27 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 Javascript
VUE的history模式下除了index外其他路由404报错解决办法
Aug 21 Javascript
Vue实现验证码功能
Dec 03 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
May 10 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
微信小程序 开发经验整理
Feb 15 #Javascript
bootstrap table操作技巧分享
Feb 15 #Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
Feb 15 #Javascript
JS原型与原型链的深入理解
Feb 15 #Javascript
js中数组插入、删除元素操作的方法
Feb 15 #Javascript
jQuery中on方法使用注意事项详解
Feb 15 #Javascript
防止重复发送 Ajax 请求
Feb 15 #Javascript
You might like
php 读取shell管道传输过来的内容
2010/03/01 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
JS backgroundImage控制
2009/05/19 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
js常用系统函数用法实例分析
2015/01/12 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
python实现人人网登录示例分享
2014/01/19 Python
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
python库matplotlib绘制坐标图
2019/10/18 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
python实现银行账户系统
2021/02/22 Python
历史专业个人求职信分享
2013/12/20 职场文书
安全保证书范文
2014/04/29 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
经验交流材料格式
2014/12/30 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
Oracle 死锁的检测查询及处理
2021/09/25 Oracle