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 相关文章推荐
基于jQuery的消息提示插件 DivAlert之旅(二)
Apr 01 Javascript
使用jQuery轻松实现Ajax的实例代码
Aug 16 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
JQuery显示、隐藏div的几种方法简明总结
Apr 16 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
Jun 04 Javascript
jQuery实现分隔条左右拖动功能
Nov 21 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
Aug 01 Javascript
基于原生js淡入淡出函数封装(兼容IE)
Oct 20 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
Mar 14 Javascript
vue-loader教程介绍
Jun 14 Javascript
react-native fetch的具体使用方法
Nov 01 Javascript
Vue项目history模式下微信分享爬坑总结
Mar 29 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
php文件缓存类汇总
2014/11/21 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
php中strtotime函数性能分析
2016/11/20 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
2018/04/21 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
javascript事件模型代码
2007/07/01 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
基于jQuery实现仿淘宝套餐选择插件
2015/03/04 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
Javascript中常用类型的格式化方法小结
2016/12/26 Javascript
js实现PC端和移动端刮卡效果
2020/03/27 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
python微信好友数据分析详解
2018/11/19 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
phpquery中文手册
2021/03/18 PHP
蛋白质世界:Protein World
2017/11/23 全球购物
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
入党积极分子思想汇报
2014/01/02 职场文书
11月升旗仪式讲话稿
2014/02/15 职场文书
离婚案件原告代理词
2015/05/23 职场文书
离职信范本
2015/06/23 职场文书