HTML5 移动端 实现九宫格碰撞
来源:互联网 发布:windows phone 应用 编辑:程序博客网 时间:2024/06/07 09:09
九宫格碰撞
getClientRects()方法
返回值是一个 DOMRect 对象,这个对象是由该元素的 getClientRects() 方法返回的一组矩形的集合, 即:是与该元素相关的CSS 边框集合 。DOMRect 对象包含了一组用于描述边框的只读属性——left、top、right和bottom,单位为像素。除了 width 和 height 外的属性都是相对于视口的左上角位置而言的。
相关代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } #box{ position: absolute; width: 100px; height: 100px; background-color: yellowgreen; z-index: 2; } #wrap{ position: absolute; top: 200px; left: 400px; width: 300px; height: 200px; background-image: url(img/b.jpg); background-repeat: no-repeat; background-size: 100% 100%; } </style> </head> <body> <div id="box"></div> <div id="wrap"></div> </body> <script type="text/javascript"> var box=document.getElementById('box'); var wrap=document.getElementById('wrap'); var eleP={left:0,top:0}; var mouseS={left:0,top:0}; box.onmousedown=function (event) { eleP.top=box.offsetTop; eleP.left=box.offsetLeft; mouseS.top=event.clientY; mouseS.left=event.clientX; document.onmousemove=function (event) { var mouseE={left:0,top:0}; mouseE.top=event.clientY; mouseE.left=event.clientX; var disX=mouseE.left-mouseS.left; var disY=mouseE.top-mouseS.top; var top=disY+eleP.top; var left=disX+eleP.left; var leftM=document.documentElement.clientWidth-box.offsetWidth; var topM=document.documentElement.clientHeight-box.offsetHeight; if(top<0){ top=0; }else if(top>topM){ top=topM; } if(left<0){ left=0; }else if(left>leftM){ left=leftM; } box.style.left=left+'px'; box.style.top=top+'px'; var T1=box.getBoundingClientRect().top; var L1=box.getBoundingClientRect().left; var R1=box.getBoundingClientRect().right; var B1=box.getBoundingClientRect().bottom; var T2=wrap.getBoundingClientRect().top; var L2=wrap.getBoundingClientRect().left; var R2=wrap.getBoundingClientRect().right; var B2=wrap.getBoundingClientRect().bottom; if( R1<L2 || B1<T2 || R2<L1 || B2<T1){ wrap.style.backgroundImage='url(img/b.jpg)'; }else { wrap.style.backgroundImage='url(img/a.jpg)'; } }; document.onmouseup=function () { document.onmousemove=document.onmouseup=null; } return false; }; </script> </html>
阅读全文
0 0
- HTML5 移动端 实现九宫格碰撞
- Html5响应式设计实现九宫格
- HTML5 九宫格拼图游戏
- html5九宫格布局
- 九宫格移动拼图游戏
- Html5实现手机九宫格密码解锁功能
- Html5实现手机九宫格密码解锁功能
- 移动端三列九宫格布局
- Android实现九宫格
- WEB 九宫格实现
- 九宫格的实现
- Android实现九宫格
- ios九宫格实现
- Android实现九宫格
- Adnroid 九宫格实现
- iOS实现九宫格
- 九宫格布局实现
- Masonry实现九宫格
- Lintcode173 Insertion Sort List solution 题解
- 思维题
- HTTP协议详解(真的很经典)
- 【第八周】项目一——建立顺序串的算法库
- Linux上安装dotnetcore2.0
- HTML5 移动端 实现九宫格碰撞
- Missing artifact com.oracle:ojdbc6:jar:11.2.0.4解决方法
- angular4 引入环境变量
- Android开发工具
- session获取与存储
- 从存储、实时、安全的角度谈如何建立完整可用的企业大数据平台
- windows任务计划CMD方式的实现
- 第二周项目一
- 给 Android 开发者的 Gradle 入门指南