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 相关文章推荐
Javascript处理DOM元素事件实现代码
May 23 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
Angular2平滑升级到Angular4的步骤详解
Mar 29 Javascript
js获取浏览器的各种属性
Apr 27 Javascript
Angularjs修改密码的实例代码
May 26 Javascript
vue使用rem实现 移动端屏幕适配
Sep 26 Javascript
element-ui的回调函数Events的用法详解
Oct 16 Javascript
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 Javascript
node实现爬虫的几种简易方式
Aug 22 Javascript
Vue实现剪切板图片压缩功能
Feb 04 Javascript
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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
php返回字符串中所有单词的方法
2015/03/09 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
JavaScript Event学习第七章 事件属性
2010/02/07 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
让人期待的2011年度最佳 jQuery 插件分享
2012/03/16 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
使用pkg打包Node.js应用的方法步骤
2018/10/19 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python的gevent框架的入门教程
2015/04/29 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python实现自主查询实时天气
2018/06/22 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python dumps和loads区别详解
2020/02/04 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
编写strcpy函数
2014/06/24 面试题
请说出以下代码输出什么
2013/08/30 面试题
初一新生军训方案
2014/05/22 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年控辍保学工作总结
2014/12/08 职场文书
幼师自荐信范文
2015/03/06 职场文书
演讲开场白台词大全
2015/05/29 职场文书
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技