元素碰撞检测原理及实现
我们知道当鼠标在元素上移入移出,可以使用hover属性来改变元素,如果是元素与元素碰撞呢?应该怎么 操作呢?这个时候依然要使用我们之前介绍过的元素拖拽的效果。 原理:先上图
绿色元素是固定元素(div2),红色元素(div1)是拖拽的元素。将红元素拖拽碰到绿色元素时,绿色元素背景颜色发生改变。
1、按照上图将整个空间划分为九宫格形式。div2在空间5的位置。div1在其他位置就不会发生碰撞。
2、其实也就是比较div1的offsetLeft与div2的offsetLeft的大小。
3、div1和div2的左侧都是offsetLeft,他们的右侧都是用各自的offsetLeft加上各自的宽
4、div2的offsetLeft是固定的。div1的offsetLeft根据之前拖拽原理的可以求出。
5、使用if语句判断,div1和div2的offsetLeft即可。将R1和L2比较,将R2和L1比较
6、高度的比较和宽度类似
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>碰撞检测</title>
<style>
#div1 {
width: 100px; height: 100px; background: red; position: absolute; z-index: 2;}
#div2 {
position: absolute; left: 500px; top: 200px;</