javascript - 如何在元素(div、图像)相互接触时触发事件?

标签 javascript jquery html css

我想知道是否有可能当一个元素(图像)接触、进入、越过另一个元素(一个包含另一个图像的 div)。

我正在玩一个只使用 Javascript、CSS 和 HTML 的愚蠢的小游戏,我正在尝试弄清楚如何部署一个事件,就像 .click() 或任何其他当 Angular 色(图像)接触或进入另一个元素(其中包含图像的 div)。我使用 w、a、s、d 让 Angular 色(图像元素)四处移动,我希望它在接触某物时触发事件。

最佳答案

我必须在这里做一些假设。你有对象 A,它用 wasd 键移动,你有对象 B 和 C。你已经有一个监听 wasd 键按下并移动对象 A 的事件。移动对象 A 后,你需要计算 A 的边界(左、右、上、下)并与对象 B 和对象 C 的边界进行比较。

可以用$element.offset()得到left和top,那么right就是left+width,bottom就是top+height。

所以一旦你拥有了所有对象,对象相交:

aTopOverlap = a.top > b.top && a.top < b.bottom;
aBottomOverlap = a.bottom > b.top && a.bottom < b.bottom;
aLeftOverlap = a.left > b.left && a.left < b.right;
aRightOverlap = a.right > b.left && a.right < b.left;
aVerticalOverlay = b.top > a.top && b.bottom < a.bottom;
aHorizontalOverlay = b.left > a.left && b.right < a.right;

if ((aTopOverlap || aBottomOverlap || aVerticalOverlay) && (aLeftOverlap || aRightOverlap || aHorizontalOverlay)) {
    //collision logic here
}

关于javascript - 如何在元素(div、图像)相互接触时触发事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704978/

相关文章:

javascript - 从 Meteor 模板按钮单击事件获取按钮值

jquery - 如何获取距日期选择器中所选日期 15 天以上的日期?

javascript - 确定 rails3 jquery 自动完成插件的结果范围

html - 存在错误类别时集中输入标签

html - 如何将两个div放到下一个

javascript - 打破 facebook 喜欢按钮文本行“一个喜欢。注册以查看您的 friend 喜欢什么

javascript - Grid 中的 Kendo DropDownList 在选择后显示值

javascript - 使用availity-reactstrap-validation时如何处理空值

javascript - 如何通过滚动覆盖另一个元素的元素?

javascript - jQuery 中的显示/隐藏功能问题。跳转到文档顶部