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 函数链之演变
Apr 07 Javascript
js计算精度问题小结
Apr 22 Javascript
获取select元素被选中的文本内容的js代码
Jan 29 Javascript
jQuery实现带延迟效果的滑动菜单代码
Sep 02 Javascript
JS实现alert中显示换行的方法
Dec 17 Javascript
JS原型链怎么理解
Jun 27 Javascript
关于js二维数组和多维数组的定义声明(详解)
Oct 02 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
Oct 10 Javascript
vue-cli+webpack记事本项目创建
Apr 01 Javascript
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 jQuery
JavaScript实现计算多边形质心的方法示例
Jan 31 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
Jun 28 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实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP回调函数概念与用法实例分析
2017/11/03 PHP
javascript开发中因空格引发的错误
2010/11/08 Javascript
JavaScript插入动态样式实现代码
2012/02/22 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
Python实现将绝对URL替换成相对URL的方法
2015/06/28 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
深入浅析python with语句简介
2018/04/11 Python
python实现顺序表的简单代码
2018/09/28 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
pygame实现打字游戏
2021/02/19 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
学生安全承诺书
2014/05/22 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
领导视察通讯稿
2015/07/18 职场文书
Go语言入门exec的基本使用
2022/05/20 Golang