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 相关文章推荐
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
基于jQuery UI CSS Framework开发Widget的经验
Aug 21 Javascript
JavaScript中常见获取元素的方法汇总
Mar 04 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
May 06 Javascript
深入剖析JavaScript编程中的对象概念
Oct 21 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
Oct 31 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
Sep 10 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
Oct 14 Javascript
JavaScript体验异步更好的解决办法
Jan 08 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
Aug 27 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
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
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
PHP实现生成唯一编号(36进制的不重复编号)
2014/07/01 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
IE、FF、Chrome浏览器中的JS差异介绍
2013/08/13 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
JS执行控制之节流模式实例分析
2018/12/21 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
2020/01/14 Python
基于Pytorch SSD模型分析
2020/02/18 Python
Django models filter筛选条件详解
2020/03/16 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
德国旅游网站:weg.de
2018/06/03 全球购物
应届毕业生个人自荐信范文
2013/11/30 职场文书
工程材料采购方案
2014/05/18 职场文书
世界读书日的活动方案
2014/08/20 职场文书
安全生产先进个人总结
2015/02/15 职场文书
花木兰观后感
2015/06/10 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
mysql使用FIND_IN_SET和group_concat两个方法查询上下级机构
2022/04/20 MySQL