JS运动基础(四) 碰撞运动

碰撞运动
撞到目标点,速度反转
无重力的漂浮Div
速度反转
滚动条闪烁的问题
过界后直接拉回来

加入重力
反转速度的同时,减小速度
纵向碰撞,横向速度也减小
横向速度小数问题(负数)


 1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title>无标题文档</title>
6 <style>
7 #div1{ width:100px; height:100px; background:red; position:absolute;}
8 </style>
9 <script>
10
11 //碰撞运动 : 首先找到碰撞的临界点 , 再确定运动的方向 , 然后去改对应的速度(速度取反)
12
13 window.onload = function(){
14 var oDiv = document.getElementById(‘div1‘);
15
16 var iSpeedX = 10;
17 var iSpeedY = 10;
18
19 startMove();
20
21 function startMove(){
22 setInterval(function(){
23
24 var L = oDiv.offsetLeft + iSpeedX;
25 var T = oDiv.offsetTop + iSpeedY;
26
27 if(T>document.documentElement.clientHeight - oDiv.offsetHeight){
28 T = document.documentElement.clientHeight - oDiv.offsetHeight;
29 iSpeedY *= -1;
30 }
31 else if(T<0){
32 T = 0;
33 iSpeedY *= -1;
34 }
35
36 if(L>document.documentElement.clientWidth - oDiv.offsetWidth){
37 L = document.documentElement.clientWidth - oDiv.offsetWidth;
38 iSpeedX *= -1;
39 }
40 else if(L<0){
41 L = 0;
42 iSpeedX *= -1;
43 }
44
45 oDiv.style.left = L + ‘px‘;
46 oDiv.style.top = T + ‘px‘;
47 },30);
48 }
49
50 };
51 </script>
52 </head>
53
54 <body>
55 <div id="div1"></div>
56 </body>
57 </html>

自由落体 :


 1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <title>无标题文档</title>
6 <style>
7 #div1{ width:100px; height:100px; background:red; position:absolute;}
8 </style>
9 <script>
10 window.onload = function(){
11 var oInput = document.getElementById(‘input1‘);
12 var oDiv = document.getElementById(‘div1‘);
13
14 var timer = null;
15 var iSpeed = 0;
16
17 oInput.onclick = function(){
18 startMove();
19 };
20
21 function startMove(){
22 clearInterval(timer);
23 timer = setInterval(function(){
24
25 iSpeed += 3;
26
27 var T = oDiv.offsetTop + iSpeed;
28
29 if(T > document.documentElement.clientHeight - oDiv.offsetHeight){
30 T = document.documentElement.clientHeight - oDiv.offsetHeight;
31 iSpeed *= -1;
32
33 iSpeed *= 0.75;
34
35 }
36
37 oDiv.style.top = T + ‘px‘;
38
39 },30);
40 }
41
42 };
43 </script>
44 </head>
45
46 <body>
47 <input type="button" value="开始运动" id="input1">
48 <div id="div1"></div>
49 </body>
50 </html>

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

JS运动基础(四) 碰撞运动的相关文章

JS运动基础(三) 弹性运动

加减速运动速度不断增加或减少速度减小到负值,会向反方向运动弹性运动在目标点左边,加速:在目标点右边,减速根据距离,计算加速度带摩擦力的弹性运动弹性运动+摩擦力 弹性:速度 += (目标点 - 当前值)/系数;  //6 , 7 , 8速度 *= 摩擦系数;   // 0.7 0.75终止条件距离足够近 并且 速度足够小 缓冲:var 速度 = (目标点 - 当前值)/系数;速度取整 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <me

JS运动---运动基础(缓冲运动)

(1)手风琴效果 分析: (2)基础缓冲运动 接下来取整 原因: px为计算机识别的最小单位,1px无法再往下拆分.所以css如果取值200.5px,解析时计算机会自动将其改为200px注意:这里的数值并没有四舍五入计算,200.9px最后依然是200px 速度不能是小数,需要取整,所以接下来进行取整 因为从左到右运动和从右到左运动不一样,所以需要判断 (3)右侧悬浮框缓冲运动 <!DOCTYPE HTML> <html> <head> <meta charset

js运动基础之缓冲运动

单属性缓冲运动 1 /** 2 * 单属性缓冲运动 3 */ 4 function fnSingleBufferMove(oDom, sAttr, iTarget, fn){ 5 var iSpeed, iCur; 6 clearInterval(oDom.timer); 7 oDom.timer = setInterval(function(){ 8 // 计算当前值 9 if(sAttr == 'opacity'){ 10 iCur = Math.round(fnGetStyle(oDom,

JS运动基础(二) 摩擦运动、缓冲运动

position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位问题.所以当没有定义position属性时,并不说明该元素没有自己的位置,它会遵循默认显示为静态位置,在静态定位状态下无法通过坐标值(top,left,right,bottom)来改变它的位置. position:absolute(绝对定位) 当position属性定义为absolute时,元素会脱离文档流

第八节 JS运动基础

运动基础 让Div运动起来 速度--物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快 匀速运动(速度不变) 运动框架及应用: 运动框架: 在开始运动时,关闭已有定时器 把运动和停止隔开(if/else) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS运

js 碰撞运动

<!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> &l

简单的碰撞运动

需要的js //碰撞运动 //对运动的方向以及临界值的处理 function bumpMove(obj) { clearInterval(obj.timer); var speedX = 10; var speedY = 10; timer = setInterval(function() { var L = obj.offsetLeft + speedX; var T = obj.offsetTop + speedY; if(T > document.documentElement.clien

javascript运动系列第九篇——碰撞运动

× 目录 [1]碰撞检测 [2]无损碰撞 [3]有损碰撞 前面的话 碰撞可以分为碰壁和互碰两种形式,上篇介绍了碰壁运动,本文将从浅入深地介绍碰撞运动的互碰形式 碰撞检测 对于互碰形式的碰撞运动来说,首先要解决的是碰撞检测.对于矩形元素的碰撞检测前面的博文已经详细介绍过,下面主要介绍圆形元素的碰撞检测 矩形元素的碰撞检测利用九宫格分析法,而圆形元素的碰撞检测则简单很多,判断两个圆形元素的半径之和是否大于两个圆形元素的圆心点坐标之间的距离即可 由示意图可知,元素一的圆心位置为(x1,y1),半径为r

股票市场运动的四个阶段 30日均线的13大操盘法

★股票市场运动的四个阶段: 以30日均线为标准,一次完整的股票市场循环运动必然包含上图框定的四个阶段,没有任何一只股票能够例外.30日均线是机构庄家操盘战略战术动作展开的生命线,其中的短线操作价值务必要引起我们绝对高度的重视.要把30均线对股票运动的极其重要性铭刻在我们的骨髓中.只要30日均线线的方向朝下,这只股票就绝对没有产生大行情的物质基础和市场条件,就绝对不是我们展开买进操作动作的目标对象.同时也说明该股票处于第四阶段D下跌阶段.此时正处于庄家战略性波段做空过程之中,行情下跌就是主旋律.间