jQuery+canvas实现的球体平抛及颜色动态变换效果


Posted in Javascript onJanuary 28, 2016

本文实例讲述了jQuery+canvas实现的球体平抛及颜色动态变换效果。分享给大家供大家参考,具体如下:

运行效果截图如下:

jQuery+canvas实现的球体平抛及颜色动态变换效果

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>canvas平抛</title>
  <script src="jquery-1.7.1.min.js" type="text/javascript"></script>
  <script type="text/javascript" >
    var canvasHeight = 300;
    var canvasWidth = 300;
    var g = 9.8;
    //x, y, vo, r
    function HorizenCast(context, settings) {
      var _self = this;
      $.extend(_self, settings);
      _self.xo = _self.x;
      _self.yo = _self.y;
      HorizenCast.createColor = function () {
        var r = Math.round(Math.random() * 256),
          g = Math.round(Math.random() * 256),
          b = Math.round(Math.random() * 256);
        return "rgb("+r+","+g+","+b+")";
      }
      _self.cast = function () {
        if (_self.x > canvasWidth - _self.r || _self.y > canvasHeight - _self.r) {
          return;
        }
        var time = (new Date().getTime() - _self.prevTime) / 1000,
          x = _self.xo +_self.vo * time,
          y = _self.yo + 1 / 2 * g * time * time;
        context.beginPath();
        context.fillStyle = HorizenCast.createColor();
        context.arc(_self.x, _self.y, _self.r, 0, 2 * Math.PI);
        context.fill();
        context.closePath();
        _self.x = x;
        _self.y = y;
        setTimeout(function () {
          _self.cast();
        }, 30);
      }
      _self.prevTime = new Date().getTime();
      _self.cast();
    }
    $(document).ready(function () {
      var canvas = document.getElementById("canvas");
      var context = canvas.getContext('2d');
      new HorizenCast(context, { x: 0, y: 0, vo: 100, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 90, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 80, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 70, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 60, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 50, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 40, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 30, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 20, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 10, r: 5 });
      new HorizenCast(context, { x: 0, y: 0, vo: 5, r: 5 });
    });
  </script>
  <style type="text/css" >
  h2 { color:Gray; line-height:50px; }
  #canvas { background:#DDDDDD;}
  </style>
</head>
<body>
 <center>
 <h3>canvas实现平抛效果</h3>
 <hr />
 <canvas id="canvas" width="300" height="300"></canvas>
 <hr />
 </center>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
鼠标事件延时切换插件
Mar 12 Javascript
js字符串截取函数substr substring slice使用对比
Nov 27 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
May 23 Javascript
JS触摸与手势事件详解
May 09 Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
ES6入门教程之Array.from()方法
Mar 23 Javascript
详解基于Vue的支持数据双向绑定的select组件
Sep 02 Javascript
JavaScript 反射和属性赋值实例解析
Oct 28 Javascript
在Vue中使用mockjs代码实例
Nov 25 Vue.js
Vue+Flask实现图片传输功能
Apr 01 Vue.js
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 #Javascript
基于javascript实现动态显示当前系统时间
Jan 28 #Javascript
jQuery实现div随意拖动的实例代码(通用代码)
Jan 28 #Javascript
jQuery+css实现炫目的动态块漂移效果
Jan 28 #Javascript
使用node+vue.js实现SPA应用
Jan 28 #Javascript
jQuery+css实现的tab切换标签(兼容各浏览器)
Jan 28 #Javascript
javascript实现随机显示星星特效
Jan 28 #Javascript
You might like
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php实现购物车功能(上)
2020/07/23 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
在django admin中添加自定义视图的例子
2019/07/26 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
什么时候用assert
2015/05/08 面试题
中学生爱国演讲稿
2013/12/31 职场文书
2014村务公开实施方案
2014/02/25 职场文书
幼儿园评语大全
2014/04/17 职场文书
一年级小学生评语
2014/04/22 职场文书
法制宣传教育方案
2014/05/09 职场文书
学校与家长安全责任书
2014/07/23 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
2014年接待工作总结
2014/11/26 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
严以律己专题学习研讨会发言材料
2015/11/09 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
如何写好闭幕词
2019/04/02 职场文书
Ajax异步刷新功能及简单案例
2021/11/20 Javascript
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技