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下字符串连接的性能
Mar 05 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
Apr 18 Javascript
jquery取消选择select下拉框示例代码
Feb 22 Javascript
javascript中SetInterval与setTimeout的定时器用法
Aug 24 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
Nuxt.js SSR与权限验证的实现
Nov 21 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
JavaScript实现随机五位数验证码
Sep 27 Javascript
JavaScript相等运算符的九条规则示例详解
Oct 20 Javascript
vue项目中锚点定位替代方式
Nov 13 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
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
设定php简写功能的方法
2019/11/28 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python实现登陆文件验证方法
2018/10/06 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
美国网上花店:JustFlowers
2017/02/12 全球购物
美国汽车零部件和配件网站:CarParts
2019/03/13 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
初中校园广播稿
2014/02/02 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
离婚协议书范本2014
2014/10/27 职场文书
入党群众意见范文
2015/06/02 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
Python 语言实现六大查找算法
2021/06/30 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL