JS实现碰撞检测效果


Posted in Javascript onMarch 12, 2020

本文实例为大家分享了JS实现碰撞检测效果的具体代码,供大家参考,具体内容如下

<head>
 <meta charset="UTF-8">
 <title></title>
 <style type="text/css">
 #all{
  width: 500px;
  height: 500px;
  border: 2px solid sandybrown;
  position: relative;
  margin: 0 auto;
 }
 #div1{
  width: 50px;
  height: 50px;
  background-color: red;
  position: absolute;
 }
 #center{
  width: 150px;
  height: 150px;
  background-color: black;
  position: absolute;
  margin: 175px;
 }
 </style>
</head>
<body>
 <div id="all">
 <div id="div1"></div>
 <div id="center"></div>
 </div>
 <script type="text/javascript">
 var oAll = document.getElementById("all");
 var oDiv1 = document.getElementById("div1");
 var oCenter = document.getElementById("center");
 
 var maxL = oAll.clientWidth - oDiv1.clientWidth;
 var maxT = oAll.clientHeight - oDiv1.clientHeight;
 
 oDiv1.onmousedown = function(){
  var ev = ev || window.event;
  var lessX = ev.clientX - oDiv1.offsetLeft;
  var lessY = ev.clientY - oDiv1.offsetTop;
  document.onmousemove = function(){
  var ev = ev || window.event;
  var posL = ev.clientX - lessX;
  var posT = ev.clientY - lessY;
  
  if(oCenter.offsetLeft-oDiv1.offsetWidth<posL && posL<325 && oCenter.offsetLeft-oDiv1.offsetWidth<posT && posT<325 ){
   oCenter.style.backgroundColor = "red"
  }else{
   oCenter.style.backgroundColor = "black"
  }
  if(posL<0){
   posL = 0;
  }
  if(posT<0){
   posT = 0;
  }
  if(posL>maxL){
   posL = maxL;
  }
  if(posT>maxT){
   posT = maxT;
  }
  oDiv1.style.left = posL + "px";
  oDiv1.style.top = posT + "px";
  }
 }
 document.onmouseup = function(){
  document.onmousemove = null;
  oDiv1.onmousemove = null;
 }
 </script>
</body>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
YUI 读码日记之 YAHOO.lang.is*
Mar 22 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
js replace替换所有匹配的字符串
Feb 13 Javascript
JavaScript中循环遍历Array与Map的方法小结
Mar 12 Javascript
jQuery表单插件ajaxForm实例详解
Jan 17 Javascript
微信小程序url与token设置详解
Sep 26 Javascript
2种简单的js倒计时方式
Oct 20 Javascript
vue实现动态列表点击各行换色的方法
Sep 13 Javascript
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
vue中axios的二次封装实例讲解
Oct 14 Javascript
vue2和vue3的v-if与v-for优先级对比学习
Oct 10 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 Javascript
使用JS实现动态时钟
Mar 12 #Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 #Javascript
js实现动态时钟
Mar 12 #Javascript
package.json各个属性说明详解
Mar 11 #Javascript
package.json中homepage属性的作用详解
Mar 11 #Javascript
vue项目中使用vue-layer弹框插件的方法
Mar 11 #Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 #Javascript
You might like
超人钢铁侠联手合作?美漫作家呼吁DC漫威合作联动以抵抗疫情
2020/04/09 欧美动漫
php获取服务器信息的实现代码
2013/02/04 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
PHP+MySQL实现在线测试答题实例
2020/01/02 PHP
JavaScript 数组运用实现代码
2010/04/13 Javascript
javascript学习笔记(八) js内置对象
2012/06/19 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
深入分析node.js的异步API和其局限性
2016/09/05 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
JS验证码实现代码
2017/09/14 Javascript
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
Pytorch反向求导更新网络参数的方法
2019/08/17 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
用css3实现当鼠标移进去时当前亮其他变灰效果
2014/04/08 HTML / CSS
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
linux面试相关问题
2012/08/11 面试题
建筑施工实习自我鉴定
2013/09/19 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
《菜园里》教学反思
2014/04/17 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
暑假学习心得体会
2014/09/02 职场文书
企业催款函范本
2015/06/24 职场文书
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android