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 相关文章推荐
Javascript图像处理—亮度对比度应用案例
Jan 03 Javascript
js中数组Array的一些常用方法总结
Aug 12 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
jquery简单倒计时实现方法
Dec 18 Javascript
使用jquery提交form表单并自定义action的方法
May 25 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
Dec 25 jQuery
vue基于element的区间选择组件
Sep 07 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
微信小程序实现banner图轮播效果
Jun 28 Javascript
使用vue-router在Vue页面之间传递数据的方法
Jul 15 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
JavaScript 绘制饼图的示例
Feb 19 Javascript
微信小程序 开发经验整理
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导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
js实现延时加载Flash的方法
2015/11/26 Javascript
Bootstrap3制作搜索框样式的方法
2016/07/11 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
js实现div色块碰撞
2020/01/16 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
[00:43]2016完美“圣”典风云人物:单车宣传片
2016/12/02 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python中文竖排显示的方法
2015/07/28 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
python实现梯度下降法
2020/03/24 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
运行Python编写的程序方法实例
2020/10/21 Python
二年级评语大全
2014/04/23 职场文书
慈善晚会策划方案
2014/05/14 职场文书
入党推优材料
2014/06/02 职场文书
会计学专业求职信
2014/07/17 职场文书
财务工作失误检讨书
2015/02/19 职场文书
于丹讲座视频观后感
2015/06/15 职场文书