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 相关文章推荐
Javascript !!的作用
Dec 04 Javascript
在浏览器窗口上添加遮罩层的方法
Nov 12 Javascript
JavaScript String.replace函数参数实例说明
Jun 06 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
jquery获取多个checkbox的值异步提交给php
Jul 07 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
Sep 22 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
Nov 01 Javascript
vue里如何主动销毁keep-alive缓存的组件
Mar 21 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 jQuery
js实现图片实时时钟
Jan 15 Javascript
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
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
星际实力自我测试
2020/03/04 星际争霸
PHP4实际应用经验篇(4)
2006/10/09 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
解析php中array_merge与array+array的区别
2013/06/21 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
Laravel路由研究之domain解决多域名问题的方法示例
2019/04/04 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python实现分数序列求和
2020/02/25 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
全球在线商店:BerryLook
2019/04/14 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
出纳岗位职责模板
2013/11/27 职场文书
希特勒经典演讲稿
2014/05/19 职场文书
社区禁毒工作方案
2014/06/02 职场文书
保险专业求职信
2014/07/07 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
商务宴会祝酒词
2015/08/11 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL