jQuery模拟物体自由落体运动(附演示与demo源码下载)


Posted in Javascript onJanuary 21, 2016

本文实例讲述了jQuery模拟物体自由落体运动的方法。分享给大家供大家参考,具体如下:

运行效果截图如下:

jQuery模拟物体自由落体运动(附演示与demo源码下载)

点击此处查看在线演示效果。

完整实例代码点击此处本站下载。

具体代码如下:

<!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>自由落体</title>
 <script src="jquery-1.7.1.min.js" type="text/javascript"></script>
 <script type="text/javascript" >
  $(document).ready(function () {
  });
  var all_Height = 500;
  var a = 9.8; // 加速度
  var v = 0;
  var prev_Time = 0;
  var prev_Speed = 0;
  var prev_Height = 0;
  var speed = 0;
  // 获取当前的高度
  var getHeight = function (obj) {
   return obj.offset().top;
  }
  // 获取当前的速度
  var getSpeed = function (time, a) {
   return time * a;
  }
  // 向下走时获得当前物体所走的路径
  var getCurrentHeight = function (time) {
   return 1 / 2 * a * time * time;
  }
  // 向上走时获得当前物体所走的路径
  var getCurrentHeight2 = function (speed, time) {
   return speed * time - 1 / 2 * a * time * time;
  }
  // 向下跑
  function down() {
   prev_Time = 0;
   var interval = setInterval(function () {
    if (getHeight($(".obj")) < all_Height) {
     prev_Time = prev_Time + 0.1;
     var height = getCurrentHeight(prev_Time) + prev_Height;
     $(".obj").css("top", height + "px");
     $(".info").append("<div>" + height + "</div>");
    } else {
     speed = getSpeed(a, prev_Time);
     prev_Speed = speed;
     clearInterval(interval);
     up();
    }
   }, 5);
  }
  // 向上跑
  function up() {
   prev_Time = 0;
   prev_Speed -= 4; // 动能损耗
   var interval = setInterval(function () {
    if (speed > 0) {
     speed = prev_Speed - getSpeed(a, prev_Time);
     prev_Time = prev_Time + 0.1;
     var height = all_Height - getCurrentHeight2(prev_Speed, prev_Time);
     $(".obj").css("top", height + "px");
    } else {
     clearInterval(interval);
     prev_Height = $(".obj").offset().top;
     if (prev_Height < all_Height) {
      down();
     }
    }
   }, 5);
  }
  function play() {
   alert('play');
   down();
   document.getElementById("obj").onclick = null;
  }
 </script>
 <style type="text/css">
 body{ margin:0 0 0 0 ; background:#FFFFFF;}
 .title { text-align:center; color:#666666; border-bottom:2px solid gray; font-size:30px; line-height:100px; font-weight:bolder;}
 .obj { background-image:url('a.jpg'); width:50px; height:50px; position:absolute; top:0; left:0; }
 </style>
</head>
<body>
<div style="height:550px; border-bottom:2px solid gray;">
<div class="title" >自由落体大模拟<span style="font-size:12px;">(点击图片让它落下)</span></div>
</div>
<div class="obj" id="obj" onclick="play();" ></div>
</body>
</html>

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

Javascript 相关文章推荐
一些有关检查数据的JS代码
Sep 07 Javascript
jQuery第三课 修改元素属性及内容的代码
Mar 14 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
JS替换文本域内的回车示例
Feb 18 Javascript
jQuery中eq()方法用法实例
Jan 05 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
May 16 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
Oct 09 Javascript
详解vue-cli开发环境跨域问题解决方案
Jun 06 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
js中this的指向问题归纳总结
Nov 28 Javascript
vue项目中使用多选框的实例代码
Jul 22 Javascript
angularjs表格分页功能详解
Jan 21 #Javascript
使用angularjs创建简单表格
Jan 21 #Javascript
Jquery中巧用Ajax的beforeSend方法
Jan 20 #Javascript
Javascript中神奇的this
Jan 20 #Javascript
javascript实现图片轮播效果
Jan 20 #Javascript
JS获取鼠标坐标位置实例分析
Jan 20 #Javascript
属于你的jQuery提示框(Tip)插件
Jan 20 #Javascript
You might like
ip签名探针
2006/10/09 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
非html5实现js版弹球游戏示例代码
2013/09/22 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
JavaScript使用Replace进行字符串替换的方法
2015/04/14 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
常用的js方法合集
2017/03/10 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python enumerate内置函数用法总结
2020/01/07 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
介绍一下UNIX启动过程
2013/11/14 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
医学护理毕业生自荐信
2013/11/07 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
药店主任岗位责任制
2014/02/10 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
学校对教师的评语
2014/04/28 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers