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 相关文章推荐
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
setInterval,setTimeout与jquery混用的问题
Apr 08 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
Jan 07 Javascript
jQuery ajax serialize() 方法使用示例
Nov 02 Javascript
jQuery插件kinMaxShow扩展效果用法实例
May 04 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
Dec 20 Javascript
Javascript 链式作用域详细介绍
Feb 23 Javascript
swiper 自动图片无限轮播实现代码
May 21 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
Mar 19 Javascript
原生JS实现汇率转换功能代码实例
May 13 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 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写的简易聊天室代码
2011/06/04 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
初识ThinkPHP控制器
2016/04/07 PHP
JavaScript延迟加载
2021/03/09 Javascript
Prototype使用指南之selector.js说明
2008/10/26 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
JavaScript函数详解
2014/11/17 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
Vue-Router实现组件间跳转的三种方法
2017/11/07 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
python中黄金分割法实现方法
2015/05/06 Python
Python实现识别手写数字大纲
2018/01/29 Python
使用python 打开文件并做匹配处理的实例
2019/01/02 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
出纳员的岗位职责
2014/02/22 职场文书
公司活动方案范文
2014/03/06 职场文书
白莲教口号
2014/06/18 职场文书
2014年纪检工作总结
2014/11/12 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python