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控制上传文件的大小
Oct 26 Javascript
Javascript开发之三数组对象实例介绍
Nov 12 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
Dec 12 Javascript
Javascript获取统一管理的提示语(message)
Feb 03 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
jQuery下拉菜单的实现代码
Nov 03 Javascript
利用Bootstrap实现表格复选框checkbox全选
Dec 21 Javascript
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 Javascript
jQuery实现异步上传一个或多个文件
Aug 17 jQuery
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 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设计模式 Delegation(委托模式)
2011/06/26 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
2016/12/08 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
js实现开关灯效果
2020/03/30 Javascript
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
python直接访问私有属性的简单方法
2016/07/25 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Python彻底删除文件夹及其子文件方式
2019/12/23 Python
jupyter 导入csv文件方式
2020/04/21 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
新闻编辑自荐信
2013/11/03 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2015年妇女工作总结
2015/05/14 职场文书
地雷战观后感
2015/06/09 职场文书
海贼王十大逆天果实 魂魂果实上榜,岩浆果实攻击力最强
2022/03/18 日漫
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS