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 相关文章推荐
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
Aug 19 Javascript
js插件Jcrop自定义截取图片功能
Oct 14 Javascript
Vue-cli创建项目从单页面到多页面的方法
Sep 20 Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 Javascript
浅谈vue项目打包优化策略
Sep 29 Javascript
详解Vue.directive 自定义指令
Mar 27 Javascript
使用vue打包进行云服务器上传的问题
Mar 02 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
May 14 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开发文件系统实例讲解
2006/10/09 PHP
十天学会php之第二天
2006/10/09 PHP
几款免费开源的不用数据库的php的cms
2010/12/19 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
Mac系统下使用brew搭建PHP(LNMP/LAMP)开发环境
2015/03/03 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
js 函数的副作用分析
2011/08/23 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
vue.js轮播图组件使用方法详解
2018/07/03 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python原始字符串与Unicode字符串操作符用法实例分析
2017/07/22 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
如何基于python生成list的所有的子集
2019/11/11 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
成品仓管员工作职责
2013/12/29 职场文书
抄作业检讨书
2014/02/17 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
zabbix配置nginx监控的实现
2022/05/25 Servers