javascript---之自由落体运动实现

实现自由落体运动需要理解的几个简单属性:

clientHeight:浏览器客户端整体高度

offsetHeight:对象(比如div)的高度

offsetTop:对象离客户端最顶端的距离

简单demo如下:

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>free_movement</title>
	<style type="text/css">
		#div1{
			position: absolute;
			height: 100px;
			width: 100px;
			background: red;
		}
	</style>
	<script type="text/javascript">
		window.onload=function  () {
			var btn=document.getElementById('btn');
			var div1=document.getElementById('div1');

			var Time=null;
			var speed=0;
			btn.onclick=function () {
				startMove();
			}

			function startMove () {
				clearInterval(Time);
				Time=setInterval(function(){
					speed+= 3;
					var T = div1.offsetTop + speed;
					if(T > document.documentElement.clientHeight - div1.offsetHeight){
						T = document.documentElement.clientHeight - div1.offsetHeight;
						speed *= -1;
						speed *= 0.75;
					}
					div1.style.top=T+'px';
				}, 30)
			}
		}
	</script>
</head>
<body>
	<input type='button' value='开始运动' id="btn">
	<div id="div1"></div>
</body>
</html>

注:clearTnterval(Time)://防止多次点击事件的产生

javascript---之自由落体运动实现,布布扣,bubuko.com

时间: 2024-10-05 05:06:12

javascript---之自由落体运动实现的相关文章

JS运动-自由落体运动

模拟物理中的自由落体运动:废话不多说,先看效果!! 图片效果不太好,有些卡,可以把代码考出来自己运行看下效果!! 基本过程:鼠标可拖拽div,当鼠标抬起的时候,div会自由下落,然后弹起下落,直到速度为0运动停止,下落和弹起直至停止的过程是模拟 自由落体运动 完成测试代码: <div id="box"></div> <style> #box{ position: absolute;left: 0;top: 0; width: 100px;height

canvas动画:自由落体运动

经过前面的文章,我们已经能够在canvas画布上画出各种炫酷的图形和画面,但是这些画面都是禁止的,怎么样才能让他们动起来呢? 如何绘制基本图形可以参考:canvas基本图形绘制 如何对基本图形移动旋转缩放可以参考:canvas图形变换 如何设置基本图形颜色和样式可以参考:canvas样式和颜色 如何使用外部图片以及图形组合可以参考:canvas使用图片,图形组合以及裁剪 canvas如何保存和加载图像可以参考:canvas图像保存 canvas系列教程可以参考:canvas 动画的基本步骤 我们

卡尔曼滤波器实例:进一步讨论自由落体运动

上一篇中,我们使用向量[0 0 0]T作为系统的初始状态,并且使用$\infty$作为初始状态误差的方差,也就是假定物体的初始位置.初始速度.加速度都是未知的,所有的状态信息都通过Radar的测量结果估计出来.但实际上,物体的加速度是预先知道的(假定为标准重力加速度),因此,我们可以简化上一篇中的多项式,以得到更好的状态估计. 将物体的位置设为状态$x_1$: $x_1=s_0-v_0t-\frac{1}{2}gt^2$$\frac{dx_1}{dt}=x_2=-v_0t-gt$$\frac{d

卡尔曼滤波器实例:跟踪自由落体运动:设计与Matlab实现

本文所用实例来自于以下书籍: Fundamentals of Kalman Filtering: A Practical Approach, 3rd Edition.Paul Zarchan, Howard Musoff. 某物体位于距地面400000 ft的高空,初速度为6000 ft/s,重力加速度为32.2 ft/s2.地面雷达位于其正下方测量该物体高度,测量周期0.1s,维持30s.已知雷达测量结果的标准差为1000 ft. 嗯,原书例子所用单位就是ft.与国标折算比例为0.3048.

js实现自由落体

实现自由落体运动需要理解的几个简单属性: clientHeight:浏览器客户端整体高度 offsetHeight:对象(比如div)的高度 offsetTop:对象离客户端最顶端的距离 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>free_movement</title> 6 &

Javascript摸拟自由落体与上抛运动 说明!

JavaScript 代码 //**************************************** //名称:Javascript摸拟自由落体与上抛运动! //作者:Gloot //邮箱:[email protected] // QQ:345268267 //网站:http://www.cnblogs.com/editor/ //操作:在页面不同地方点几下 //*************************************** var $ = function(el)

自由落体和抛物线运动

自由落体是个加速的过程,让速度递加,再给速度个系数,减小速度即可 抛物线是在自由落体的前提下left也会变,速度,速度系数 js函数 //自由落体和抛物线运动 function fallMove(obj) { var speed = 0; var speedX = 10; clearInterval(obj.timer); obj.timer = setInterval(function() { speed += 3; var T = obj.offsetTop + speed; if(T >

java编程自由落体位移公式

import java.util.Scanner; public class Test2 { /* * 自由落体位移公式:s = 1/2 * g * t2 s --- 位移(m) t --- 时间(s) g --- 重力加速度(9.8m/s) 根据输入的时间,求出位移多少米 */ public static void main(String[] args) { double g = 9.8; double s; int t; Scanner scanner = new Scanner(Syste

【OneAPM】极客编程挑战#023:使用HTML5画布生成渐变自由落体小球效果

本期挑战 给定如下HTML: <canvas id="gbcanvas" width="350" height="300"></canvas> 阅读如下的相关HTML5画布教程: HTML5画布实现的粒子运动效果 HTML5画布Canvas基础入门 请使用HTML5画布生成一个自由落体效果的渐变小球,效果如下(点击下图查看GIF动画) 渐变色由#dd4814开始, 由#FFFF66结束 提交方式: 录制代码编写过程或最终代