Este artigo descreve o método do JS para determinar colisões. Compartilhe para sua referência. Os detalhes são os seguintes:
JS julgando o método de colisão:
Copie o código da seguinte forma:/** para determinar se está colidindo
* @param obj objeto original
* @param Dobj Objeto de destino
*/
Função Impact (OBJ, Dobj) {
var o = {
x: getDefaultStyle (obj, 'esquerda'),
y: getDefaultStyle (obj, 'top'),
W: getDefaultStyle (obj, 'largura'),
H: GetDefaultStyle (obj, 'altura')
}
var d = {
X: getDefaultStyle (Dobj, 'Esquerda'),
y: getDefaultStyle (Dobj, 'top'),
W: getDefaultStyle (Dobj, 'Width'),
H: GetDefaultStyle (Dobj, 'Altura')
}
var px, py;
px = ox <= dx? DX: OX;
py = oy <= dy? dy: oy;
// determinar se os pontos estão nos dois objetos
if (px> = ox && px <= ox + ow && py> = oy && py <= oy + oh && px> = dx && px <= dx + dw && py> = dy && py <= dy + dh) {
retornar true;
} outro {
retornar falso;
}
}
/** Obtenha propriedades do objeto
* @param obj objet
* atributo @param atributo
*/
função getDefaultStyle (obj, atributo) {
Return parseint (obj.currentStyle? obj.currentStyle [attribute]: document.defaultView.getComputedStyle (obj, false) [attribute]);
}
Exemplos são os seguintes:
Copie o código da seguinte forma: <!
<html>
<head>
<title> demonstração </title>
<style type = "text/css">
corpo {margem: 0px;}
.Main {Position: relativo;}
#f1 {posição: absoluto; Antecedentes:#FF0000; topo: 100px; Esquerda: 100px; Largura: 200px; Altura: 200px; Z-Index: 999}
#f2 {posição: absoluto; Antecedentes:#ffff00; Top: 0px; Esquerda: 0px; Largura: 600px; Altura: 150px;}
</style>
</head>
<Body>
<div>
<div id = "f1"> </div>
<div id = "f2"> </div>
</div>
<script type = "text/javascript">
var o = document.getElementById ("F1");
var d = document.getElementById ("f2");
alerta (impacto (o, d));
Função Impact (OBJ, Dobj) {
var o = {
x: getDefaultStyle (obj, 'esquerda'),
y: getDefaultStyle (obj, 'top'),
W: getDefaultStyle (obj, 'largura'),
H: GetDefaultStyle (obj, 'altura')
}
var d = {
X: getDefaultStyle (Dobj, 'Esquerda'),
y: getDefaultStyle (Dobj, 'top'),
W: getDefaultStyle (Dobj, 'Width'),
H: GetDefaultStyle (Dobj, 'Altura')
}
var px, py;
px = ox <= dx? DX: OX;
py = oy <= dy? dy: oy;
// determinar se os pontos estão nos dois objetos
if (px> = ox && px <= ox + ow && py> = oy && py <= oy + oh && px> = dx && px <= dx + dw && py> = dy && py <= dy + dh) {
retornar true;
} outro {
retornar falso;
}
}
função getDefaultStyle (obj, atributo) {
Return parseint (obj.currentStyle? obj.currentStyle [attribute]: document.defaultView.getComputedStyle (obj, false) [attribute]);
}
</script>
</body>
</html>
Espero que este artigo seja útil para a programação JavaScript de todos.