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的设计模式
Nov 22 Javascript
奇妙的js
Sep 24 Javascript
javascript中的原型链深入理解
Feb 24 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
Feb 15 Javascript
angular.js分页代码的实例
Jul 27 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
详解vue静态资源打包中的坑与解决方案
Feb 05 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
Jan 20 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
Vue Element校验validate的实例
Sep 21 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
PHP树-不需要递归的实现方法
2016/06/21 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
js动态给table添加/删除tr的方法
2013/08/02 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JavaScript中连接操作Oracle数据库实例
2015/04/02 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python3操作MongoDB增册改查等方法详解
2020/02/10 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
Perfume’s Club美国官网:西班牙第一家在线美容店
2020/06/10 全球购物
幼儿教育感言
2014/02/05 职场文书
教师党员公开承诺书
2014/03/25 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
2014年司法局工作总结
2014/12/11 职场文书
华山导游词
2015/02/03 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
使用Java去实现超市会员管理系统
2022/03/18 Java/Android