我做的碰撞检测包,先看看示例demo,在包装上看看。






碰撞检测

* {
保证金:0;
填充:0;
}
#天后,# divb {
宽度:200px;
身高:200px;
背景颜色:紫色;
字体大小:50px;
行高:200px;
文本对齐:中心;
位置:绝对;
颜色:# FFF;
}
#天后{
左:30px;
上图:30px;
Z指数:5;
}
# divb {
左:300px;
上图:300px;
}



一
B


VaR的天后= document.getelementbyid(天后);
无功divb = document.getelementbyid(divb );


diva.onmousedown =功能(e){

风险事件= window.event E | |;


层= event1.clientx;

VaR的初始位置= event1.clienty;

document.onmousemove =功能(J){

VaR event2 = window.event | | {J}.;

无功endx = event2.clientx;
VaR恩迪= event2.clienty;

diva.style.left = diva.offsetleft +(endx - startx)+PX;
diva.style.top = diva.offsettop +(安迪-初始位置)+PX;

endx startx =;
初始位置=恩迪;

如果(iscrash(DIVA,divb)= = true){

diva.style.backgroundcolor =红色;
别的{ }

diva.style.backgroundcolor =紫色;
};
}
}


diva.onmouseup =函数(){

document.onmousemove = null;
}


功能iscrash(obj1,obj2){

无功boolcrash =真;

无功left1 = obj1.offsetleft;

VaR right1 = obj1.offsetleft + obj1.offsetwidth;

var = obj1.offsettop TOP1;

无功bottom1 = obj1.offsettop + obj1.offsetheight;

无功left2 = obj2.offsetleft;

VaR对= obj2.offsetleft + obj2.offsetwidth;

var = obj2.offsettop TOP2;

无功bottom2 = obj2.offsettop + obj2.offsetheight;


如果(right1 > left2 left1 TOP2 TOP1 < bottom2){
boolcrash =真;
别的{ }
boolcrash = false;
}
返回boolcrash;
}







功能封装


功能iscrash(obj1,obj2){

无功boolcrash = true; / /真实碰撞假说

无功left1 = obj1.offsetleft;

VaR right1 = obj1.offsetleft + obj1.offsetwidth;

var = obj1.offsettop TOP1;

无功bottom1 = obj1.offsettop + obj1.offsetheight;

无功left2 = obj2.offsetleft;

VaR对= obj2.offsetleft + obj2.offsetwidth;

var = obj2.offsettop TOP2;

无功bottom2 = obj2.offsettop + obj2.offsetheight;


如果(right1 > left2 left1 TOP2 TOP1 < bottom2){
boolcrash =真;
别的{ }
boolcrash = false;
}
返回boolcrash;
}