js實現(xiàn)碰撞檢測特效代碼分享
更新時間:2016年10月16日 17:23:41 投稿:hebedich
這篇文章主要給大家分享了js實現(xiàn)碰撞檢測特效代碼,主要就是使用JavaScript實現(xiàn)網(wǎng)頁版的碰撞檢測,有需要的小伙伴可以參考下
自己做了碰撞檢測的封裝,先看下實例demo,在看封裝
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>碰撞檢測</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;
}
相關(guān)文章
jQuery EasyUI學(xué)習(xí)教程之datagrid點擊列表頭排序
這篇文章主要介紹了jQuery EasyUI學(xué)習(xí)教程之datagrid點擊列表頭排序的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
詳解bootstrap用dropdown-menu實現(xiàn)上下文菜單
這篇文章主要介紹了詳解bootstrap用dropdown-menu實現(xiàn)上下文菜單的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
jquery實現(xiàn)鼠標(biāo)滑過顯示二級下拉菜單效果
這篇文章主要介紹了jquery實現(xiàn)鼠標(biāo)滑過顯示二級下拉菜單效果,通過jquery操作鼠標(biāo)事件及頁面樣式動態(tài)變換實現(xiàn)該功能,非常具有實用價值,需要的朋友可以參考下2015-08-08

