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 Object.extend
May 18 Javascript
JS继承--原型链继承和类式继承
Apr 08 Javascript
js带按钮的提示框可供选择示例代码
Sep 17 Javascript
jquery实现的伪分页效果代码
Oct 29 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
详谈commonjs模块与es6模块的区别
Oct 18 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
JS实现HTML页面中动态显示当前时间完整示例
Jul 30 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
微信域名检测接口调用演示步骤(含PHP、Python)
Dec 08 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
jquery实现点击文字可编辑并修改保存至数据库
2014/04/15 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
2015/02/25 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Vue项目打包编译优化方案
2020/09/16 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
解决Python3中的中文字符编码的问题
2018/07/18 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
Python 在函数上添加包装器
2020/07/28 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
户外拓展活动方案
2014/02/11 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
运动会广播稿200字
2014/10/18 职场文书
技术股东合作协议书
2014/12/02 职场文书
党员先进事迹材料
2014/12/19 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
Nginx HTTP跳转至HTTPS
2022/05/15 Servers