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 相关文章推荐
ExtJS TabPanel beforeremove beforeclose使用说明
Mar 31 Javascript
jquery 获取标签名(tagName)示例代码
Jul 11 Javascript
javascript递归回溯法解八皇后问题
Apr 22 Javascript
JavaScript的jQuery库中function的存在和参数问题
Aug 13 Javascript
easyui tree带checkbox实现单选的简单实例
Nov 07 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
Mar 14 Javascript
webpack独立打包和缓存处理详解
Apr 03 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
Apr 12 Javascript
Vue侧滑菜单组件——DrawerLayout
Dec 18 Javascript
JS实现运动缓冲效果的封装函数示例
Feb 18 Javascript
一个手写的vue放大镜效果
Aug 09 Javascript
viewer.js实现图片预览功能
Jun 24 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中PDO基础教程 入门级
2011/09/04 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
Firefox和IE浏览器兼容JS脚本写法小结
2008/07/07 Javascript
javascript import css实例代码
2008/07/18 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
js倒计时小程序
2013/11/05 Javascript
Js 去掉字符串中的空格(实现代码)
2013/11/19 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
jquery表单插件form使用方法详解
2017/01/20 Javascript
jquery.cookie.js的介绍与使用方法
2017/02/09 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
基于对象合并功能的实现示例
2017/10/10 Javascript
Vue组件之极简的地址选择器的实现
2018/05/31 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
jQuery实现的网站banner图片无缝轮播效果完整实例
2019/01/28 jQuery
微信小程序实现手势滑动效果
2019/08/26 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
Python中的迭代器漫谈
2015/02/03 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
互动出版网:专业书籍
2017/03/21 全球购物
森林防火标语
2014/06/23 职场文书
实习护士自荐信
2015/03/25 职场文书
Nginx的rewrite模块详解
2021/03/31 Servers
Redis基本数据类型Set常用操作命令
2022/06/01 Redis