JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例


Posted in Javascript onJanuary 26, 2016

本文实例讲述了JavaScript+html5 canvas绘制的圆弧荡秋千效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例

具体代码如下:

<!DOCTYPE html>
<html>
 <head>
  <title>demo</title>
  <style type="text/css">
   #canvas {
    margin:50px; border:5px solid gray; box-shadow:0px 0px 5px 5px #494949;
   }
  </style>
 </head>
 <body>
  <canvas id="canvas" width="500px" height="500px"></canvas>
 </body>
 <script type="text/javascript">
  var canvas = document.getElementById("canvas");
  var ctx = canvas.getContext("2d");
  var r_x = 250, r_y = 0;
  var offset_h = 250;
  var offset_w = 500;
  var count = 0;
  var mode = "up";
  var temp = 0;
  var getRPoint = function(x, y) {
   var r = (Math.pow(x, 2) + Math.pow(y, 2)) / (2 * y);
   var point = {
    x: x,
    y: Math.abs(250 - (r - y)),
    r: r
   };
   return point;
  };
  function arc(attrs) {
   ctx.beginPath();
   ctx.arc(attrs.x, attrs.y, attrs.r, attrs.startAngle || 0, attrs.endAngle || Math.PI);
   ctx.stroke();
  }
  var interval = setInterval(function() { 
   count++;
   switch(mode) {
    case "up":
     temp = count;
     ctx.clearRect(0, 0, 500, 500);
     if(count%18 == 0) {
      mode = "down";
      return;
     } 
    break;
    case "down":
     temp = 36 - count;
     ctx.clearRect(0, 0, 500, 500);
     if(count%36 == 0) {
      mode = "default";
      return;
     }     
    break;
    case "default":
     temp = count - 36;
     if(count%54 == 0) {
      mode = "up";
      count = 0;
      return;
     }
   }
   arc(getRPoint(250, 250-8*temp));
  }, 100);
 </script>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
May 14 Javascript
很酷的javascript loading效果代码
Jun 18 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 Javascript
Js 去掉字符串中的空格(实现代码)
Nov 19 Javascript
javascript移出节点removeChild()使用介绍
Apr 03 Javascript
浅析javascript函数表达式
Feb 10 Javascript
bootstrap网格系统使用方法解析
Jan 13 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
Feb 10 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
JS实现的集合去重,交集,并集,差集功能示例
Mar 13 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
JS组件Bootstrap Select2使用方法详解
Apr 17 #Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
Jan 26 #Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 #Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 #Javascript
基于Node.js实现nodemailer邮件发送
Jan 26 #Javascript
JavaScript小技巧整理篇(非常全)
Jan 26 #Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 #Javascript
You might like
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
jquery 日期分离成年月日的代码
2010/05/14 Javascript
JS原型对象通俗&quot;唱法&quot;
2012/12/27 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
AngularJS应用开发思维之依赖注入3
2016/08/19 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】
2018/04/19 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
简单解决Python文件中文编码问题
2015/11/22 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Win8下python3.5.1安装教程
2020/07/29 Python
pandas如何处理缺失值
2019/07/31 Python
python库matplotlib绘制坐标图
2019/10/18 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
巴西手表购物网站:eclock
2019/03/19 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
汉语专业应届生求职信
2013/10/01 职场文书
室内拓展活动方案
2014/02/13 职场文书
读群众路线心得体会
2014/03/07 职场文书
广播节目策划方案
2014/05/23 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技