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 技巧
Apr 25 Javascript
JS自动适应的图片弹窗实例
Jun 29 Javascript
innerHTML在IE中报错解决方案
Dec 15 Javascript
SWFObject基本用法实例分析
Jul 20 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
jquery实现图片上传前本地预览功能
May 10 Javascript
jQuery简单设置文本框回车事件的方法
Aug 01 Javascript
JS获取子、父、兄节点方法小结
Aug 14 Javascript
javascript标准库(js的标准内置对象)总结
May 26 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
Jun 19 Javascript
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
node.js中事件触发器events的使用方法实例分析
Nov 23 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
2011/11/02 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
Javascript之this关键字深入解析
2013/11/12 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
JavaScript DOM 对象深入了解
2016/07/20 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
详解Weex基于Vue2.0开发模板搭建
2017/03/20 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
vue实现循环切换动画
2018/10/17 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
Python列表计数及插入实例
2014/12/17 Python
python从入门到精通(DAY 2)
2015/12/20 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
Python网络爬虫与信息提取(实例讲解)
2017/08/29 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
Python中格式化字符串的四种实现
2020/05/26 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
计算机专业毕业生求职信分享
2013/12/24 职场文书
服务员岗位职责
2014/01/29 职场文书
小学毕业演讲稿
2014/04/25 职场文书
电子商务专业自荐信
2014/06/02 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
Python代码风格与编程习惯重要吗?
2021/06/03 Python