js實(shí)現(xiàn)碰撞檢測(cè)特效代碼分享
更新時(shí)間:2016年10月16日 17:23:41 投稿:hebedich
這篇文章主要給大家分享了js實(shí)現(xiàn)碰撞檢測(cè)特效代碼,主要就是使用JavaScript實(shí)現(xiàn)網(wǎng)頁(yè)版的碰撞檢測(cè),有需要的小伙伴可以參考下
自己做了碰撞檢測(cè)的封裝,先看下實(shí)例demo,在看封裝
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>碰撞檢測(cè)</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#divA,#divB{
width: 200px;
height: 200px;
background-color: purple;
font-size: 50px;
line-height: 200px;
text-align: center;
position: absolute;
color: #fff;
}
#divA{
left: 30px;
top: 30px;
z-index: 5;
}
#divB{
left: 300px;
top: 300px;
}
</style>
</head>
<body>
<div id="divA">A</div>
<div id="divB">B</div>
</body>
<script type="text/javascript">
var divA = document.getElementById("divA");
var divB = document.getElementById("divB");
divA.onmousedown = function (e) {
var event1 = window.event || e;
var startX = event1.clientX;
var startY = event1.clientY;
document.onmousemove = function (j) {
var event2 = window.event || j;
var endX = event2.clientX;
var endY = event2.clientY;
divA.style.left = divA.offsetLeft + (endX - startX) + "px";
divA.style.top = divA.offsetTop + (endY - startY) + "px";
startX = endX;
startY = endY;
if (isCrash(divA,divB) == true) {
divA.style.backgroundColor = "red";
} else{
divA.style.backgroundColor = "purple";
};
}
}
divA.onmouseup = function () {
document.onmousemove = null;
}
function isCrash (obj1,obj2) {
var boolCrash = true;
var left1 = obj1.offsetLeft;
var right1 = obj1.offsetLeft + obj1.offsetWidth;
var top1 = obj1.offsetTop;
var bottom1 = obj1.offsetTop + obj1.offsetHeight;
var left2 = obj2.offsetLeft;
var right2 = obj2.offsetLeft + obj2.offsetWidth;
var top2 = obj2.offsetTop;
var bottom2 = obj2.offsetTop + obj2.offsetHeight;
if (right1 > left2 && left1 < right2 && bottom1 > top2 && top1 < bottom2) {
boolCrash = true;
} else{
boolCrash = false;
}
return boolCrash;
}
</script>
</html>
函數(shù)封裝
function isCrash (obj1,obj2) {
var boolCrash = true;//假設(shè)true為碰撞
var left1 = obj1.offsetLeft;
var right1 = obj1.offsetLeft + obj1.offsetWidth;
var top1 = obj1.offsetTop;
var bottom1 = obj1.offsetTop + obj1.offsetHeight;
var left2 = obj2.offsetLeft;
var right2 = obj2.offsetLeft + obj2.offsetWidth;
var top2 = obj2.offsetTop;
var bottom2 = obj2.offsetTop + obj2.offsetHeight;
if (right1 > left2 && left1 < right2 && bottom1 > top2 && top1 < bottom2) {
boolCrash = true;
} else{
boolCrash = false;
}
return boolCrash;
}
您可能感興趣的文章:
- JS實(shí)現(xiàn)碰撞檢測(cè)的方法分析
- javascript制作游戲開發(fā)碰撞檢測(cè)的封裝代碼
- 原生JS實(shí)現(xiàn)的碰撞檢測(cè)功能示例
- 原生js實(shí)現(xiàn)碰撞檢測(cè)
- javascript實(shí)現(xiàn)多邊形碰撞檢測(cè)
- 基于javascript實(shí)現(xiàn)碰撞檢測(cè)
- js實(shí)現(xiàn)拖拽與碰撞檢測(cè)
- 原生js實(shí)現(xiàn)移動(dòng)小球(碰撞檢測(cè))
- js 實(shí)現(xiàn)碰撞檢測(cè)的示例
- three.js利用射線Raycaster進(jìn)行碰撞檢測(cè)
- js實(shí)現(xiàn)碰撞檢測(cè)
相關(guān)文章
jQuery-1.9.1源碼分析系列(十)事件系統(tǒng)之事件體系結(jié)構(gòu)
這篇文章主要介紹了jQuery-1.9.1源碼分析系列(十)事件系統(tǒng)之事件體系結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2015-11-11
jQuery實(shí)現(xiàn)下滑菜單導(dǎo)航效果代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)下滑菜單導(dǎo)航效果代碼,通過jquery操作鼠標(biāo)事件及頁(yè)面樣式動(dòng)態(tài)操作實(shí)現(xiàn)下滑菜單導(dǎo)航功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08
JQuery防止退格鍵網(wǎng)頁(yè)后退的實(shí)現(xiàn)代碼
有時(shí)我們需要防止退格鍵的網(wǎng)頁(yè)后退,一般情況下最好不要這么用,因?yàn)閷?duì)UX體驗(yàn)不好2012-03-03
jquery利用json實(shí)現(xiàn)頁(yè)面之間傳值的實(shí)例解析
本文主要介紹了jquery利用json實(shí)現(xiàn)頁(yè)面之間傳值的方法,具有很好的參考價(jià)值,需要的朋友可以看下2016-12-12
jQuery實(shí)現(xiàn)跟隨鼠標(biāo)運(yùn)動(dòng)圖層效果的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)跟隨鼠標(biāo)運(yùn)動(dòng)圖層效果的方法,可實(shí)現(xiàn)實(shí)時(shí)顯示鼠標(biāo)坐標(biāo)的圖層跟隨鼠標(biāo)運(yùn)動(dòng)的效果,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02

