碰撞运动

1. 物体掉落

 1     window.onload = startMove;
 2     
 3     var iSpeedX = 100;  4 var iSpeedY = 8;  5  6 function startMove() {  7 setInterval(function() {  8 var oDiv = document.getElementById("div1");  9 10 //加重力 11 iSpeedY += 5; 12 13 var l = oDiv.offsetLeft + iSpeedX; 14 var t = oDiv.offsetTop + iSpeedY; 15 16 //防止出界 17 if (l >= document.documentElement.clientWidth - oDiv.offsetWidth) { 18 iSpeedX *= -0.8; 19 l = document.documentElement.clientWidth - oDiv.offsetWidth; 20 } else if (l <= 0) { 21 iSpeedX *= -0.8; 22 l = 0; 23  } 24 25 if (t >= document.documentElement.clientHeight - oDiv.offsetHeight) { 26 iSpeedY *= -0.8; 27 iSpeedX *= 0.8; 28 t = document.documentElement.clientHeight - oDiv.offsetHeight; 29 } else if (t <= 0) { 30 iSpeedY *= -0.8; 31 iSpeedX *= 0.8; 32 t = 0; 33  } 34 35 //解决小数为负数不停止滑动的问题 36 if (Math.abs(iSpeedX) < 1) { 37 iSpeedX = 0; 38  } 39 40 if (Math.abs(iSpeedY) < 1) { 41 iSpeedY = 0; 42  } 43 44 oDiv.style.left = l + "px"; 45 oDiv.style.top = t + "px"; 46 }, 30); 47 }

 

2. 抛扔物体

 1     window.onload = function() {
 2         var oDiv = document.getElementById("div1");  3 var lastX = 0;  4 var lastY = 0;  5  6 oDiv.onmousedown = function(ev) {  7  clearInterval(timer);  8  9 var oEvent = ev || event; 10 var disX = oEvent.clientX - oDiv.offsetLeft; 11 var disY = oEvent.clientY - oDiv.offsetTop; 12 13 document.onmousemove = function(ev) { 14 var oEvent = ev || event; 15 16 var l = oEvent.clientX - disX; 17 var t = oEvent.clientY - disY; 18 19 oDiv.style.left = l + "px"; 20 oDiv.style.top = t + "px"; 21 22 //计算时刻位移来获取速度 23 iSpeedX = l - lastX; 24 iSpeedY = t - lastY; 25 26 lastX = l; 27 lastY = t; 28  }; 29 30 document.onmouseup = function() { 31 document.onmousemove = null; 32 document.onmouseup = null; 33  startMove(); 34  }; 35  }; 36  }; 37 var timer = null; 38 var iSpeedX = 0; 39 var iSpeedY = 0; 40 41 function startMove() { 42  clearInterval(timer); 43 timer = setInterval(function() { 44 var oDiv = document.getElementById("div1"); 45 46 //加重力 47 iSpeedY += 5; 48 49 var l = oDiv.offsetLeft + iSpeedX; 50 var t = oDiv.offsetTop + iSpeedY; 51 52 //防止出界 53 if (l >= document.documentElement.clientWidth - oDiv.offsetWidth) { 54 iSpeedX *= -0.8; 55 l = document.documentElement.clientWidth - oDiv.offsetWidth; 56 } else if (l <= 0) { 57 iSpeedX *= -0.8; 58 l = 0; 59  } 60 61 if (t >= document.documentElement.clientHeight - oDiv.offsetHeight) { 62 iSpeedY *= -0.8; 63 iSpeedX *= 0.8; 64 t = document.documentElement.clientHeight - oDiv.offsetHeight; 65 } else if (t <= 0) { 66 iSpeedY *= -0.8; 67 iSpeedX *= 0.8; 68 t = 0; 69  } 70 71 //解决小数为负数不停止滑动的问题 72 if (Math.abs(iSpeedX) < 1) { 73 iSpeedX = 0; 74  } 75 76 if (Math.abs(iSpeedY) < 1) { 77 iSpeedY = 0; 78  } 79 80 //运动终止条件 81 if (iSpeedX == 0 && iSpeedY == 0 82 && t == document.documentElement.clientHeight - oDiv.offsetHeight) { 83  clearInterval(timer); 84 } else { 85 oDiv.style.left = l + "px"; 86 oDiv.style.top = t + "px"; 87  } 88 }, 30); 89 }

 

转载于:https://www.cnblogs.com/HuoAA/p/5074163.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值