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 常用操作整理 基础入门篇
Oct 14 Javascript
jQuery学习2 选择器的使用说明
Feb 07 Javascript
checkbox设置复选框的只读效果不让用户勾选
Aug 12 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
JS实现从网页顶部掉下弹出层效果的方法
Aug 06 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
node.js入门学习之url模块
Feb 25 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
vue轮播图插件vue-awesome-swiper
Nov 27 Javascript
vue获取dom元素注意事项
Dec 28 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
如何优化vue打包文件过大
Apr 13 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
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
浅析LigerUi开发中谨慎载入common.css文件
2013/07/09 Javascript
js对象基础实例分析
2015/01/13 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
python中循环语句while用法实例
2015/05/16 Python
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
Python编程中NotImplementedError的使用方法
2018/04/21 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
如何使用python自带IDLE的几种方法
2020/10/10 Python
scrapy处理python爬虫调度详解
2020/11/23 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
NBA欧洲商店(西班牙):NBA Europe Store ES
2019/04/16 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
大学生饮食连锁店创业计划书
2014/01/17 职场文书
毕业横幅标语
2014/10/08 职场文书
南京大屠杀观后感
2015/06/02 职场文书
开国大典观后感
2015/06/04 职场文书
闪闪红星观后感
2015/06/08 职场文书
解决pycharm下载库时出现Failed to install package的问题
2021/09/04 Python