zoukankan      html  css  js  c++  java
  • js:简单的盒子碰撞

    一,通过计算两个盒子的四条边来判断盒子是否碰撞,

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <base href="<%=basePath%>">
        <style type="text/css">
            *{
                margin: 0px;
                padding: 0px;
            }
            .box{
                width: 146px;
                height: 100px;
                border: 1px solid darkgreen;
                border-radius: 22px 16px;
                background-color: darkkhaki;
            }
        </style>
        <script type="text/javascript" src="js/opDom.js"></script>
        <script type="text/javascript">
    
            function $(oId){
                return document.getElementById(oId);
            }
          //定义静态变量(不可修改) const LEFT
    =37,TOP=38,RIGHT=39,BOTTOM=40; var lleft=0; var ltop=0; var T2=0; var L2=0; var R2=0; var B2=0; var ddiv=0; window.onload = function(){ ddiv=$("dong"); var bdiv=$("bddiv"); //获取id为bddiv的盒子的四条边的位置 T2=bdiv.offsetTop; L2=bdiv.offsetLeft; R2=bdiv.offsetLeft+bdiv.offsetWidth; B2=bdiv.offsetTop+bdiv.offsetHeight; document.onkeydown = function(){ var event=window.event||event; //获取按下的键盘按键Unicode值 var code=event.keyCode; //判断被按下的按键 if(code==LEFT){ lleft=lleft-1; execute(lleft,ltop); pd(); return; } if(code==TOP){ ltop=ltop-1; execute(lleft,ltop); pd(); return; } if(code==RIGHT){ lleft=lleft+1; execute(lleft,ltop); pd(); return; } if(code==BOTTOM){ ltop=ltop+1; execute(lleft,ltop); pd(); return; } } } //为盒子添加位置属性 function execute(left,top){ setTimeout(function(){ ddiv.style.left=left+"em"; ddiv.style.top=top+"em"; },100) } //判断盒子是否碰撞 function pd(){ //0,0,148,102,213,717,865,315 site(function(T1,L1,R1,B1){ if((B2>B1&&B1>T2&&R2>R1&&R1>L2)||(L2<L1&&L1<R2&&B2>B1&&B1>T2)||(T2<T1&&T1<B2&&L2<L1&&L1<R2)||(T2<T1&&T1<B2&&R2>R1&&R1>L2)){ alert("盒子碰撞") } }) } //获取id为ddiv的盒子的四边位置 function site(fun){ var T=ddiv.offsetTop; var L=ddiv.offsetLeft; var R=ddiv.offsetLeft+ddiv.offsetWidth; var B=ddiv.offsetTop+ddiv.offsetHeight; fun(T,L,R,B); } </script> </head> <body> //动的盒子 <div class="box" id="dong" style="position: absolute;left: 0px;top: 0px;"> </div> <div style="height: 500px; 1000px"> //不动的盒子 <div class="box" id="bddiv"style="float: right; border-radius:0px;background-color: darkgreen; position: absolute;left: 717px;top: 213px;}"> </div> </div> </body> </html>
  • 相关阅读:
    vs2012无法启动已配置的开发Web服务器
    VS2013无法启动 IIS Express Web解决办法
    Windows server 2008系统基本优化
    Asp.net mvc项目架构分享系列之架构搭建初步
    sql windows server2008 全套激活码
    (copy)MVC4.0网站发布和部署到IIS7.0上的方法
    (转) C#多线程赛跑实例
    (已解决) 未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral,
    C# HttpWebRequest 绝技 转至 http://www.sufeinet.com/
    string 与char* char[]之间的转换 2015-04-09 11:30 29人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/dybe/p/8143343.html
Copyright © 2011-2022 走看看