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 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
Jan 08 Javascript
jquery maxlength使用说明
Sep 09 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
Dec 29 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
微信小程序实现animation动画
Jan 26 Javascript
详解mpvue开发小程序小总结
Jul 25 Javascript
详解如何用webpack4从零开始构建react开发环境
Jan 27 Javascript
vue中使用v-for时为什么不能用index作为key
Apr 04 Javascript
js实现炫酷光感效果
Sep 05 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
PHP实现简易blog的制作
2016/10/24 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
js 窗口抖动示例
2013/09/04 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Javascript字符串常用方法详解
2016/07/21 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
JavaScript 中使用 Generator的方法
2017/12/29 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
python 日期操作类代码
2018/05/05 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
销售找工作求职信
2013/12/20 职场文书
大学生学习党课思想汇报
2014/01/03 职场文书
幼儿园家长会邀请函
2014/01/15 职场文书
应用外语系自荐信
2014/06/26 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
Python关于OS文件目录处理的实例分享
2021/05/23 Python
Python 中的 copy()和deepcopy()
2021/11/07 Python
java executor包参数处理功能 
2022/02/15 Java/Android