javascript - 如何使用 JavaScript 检测元素重叠(重叠)?

标签 javascript jquery html css

如何使用 JavaScript 检测重叠的 HTML 元素?

我有一个元素列表 ( <ul> )。它使用 JavaScript 上下滑动。当它向下滑动时,根据item的数量,它可能会覆盖另一个元素( <div> ),此时是绝对定位的(可以更改)。

我如何检测,何时 <ul>与此重叠 <div> , 将新样式应用于 <div>暂时隐藏它还是将它向下移动一点,以防止重叠?
只是看起来不太好,当它们重叠时))

在这里你可以看到,我在说什么:http://timetable.raj.fvds.ru/

非常感谢!

最佳答案

function isObjOnObj(a,b){
    var al = a.left;
    var ar = a.left+a.width;
    var bl = b.left;
    var br = b.left+b.width;

    var at = a.top;
    var ab = a.top+a.height;
    var bt = b.top;
    var bb = b.top+b.height;

    if(bl>ar || br<al){return false;}//overlap not possible
    if(bt>ab || bb<at){return false;}//overlap not possible

    if(bl>al && bl<ar){return true;}
    if(br>al && br<ar){return true;}

    if(bt>at && bt<ab){return true;}
    if(bb>at && bb<ab){return true;}

    return false;
}

关于javascript - 如何使用 JavaScript 检测元素重叠(重叠)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720837/

相关文章:

javascript - 滚动时触发动画

javascript - 从 URL 调用 Javascript 函数

javascript - 从 mongo 正则表达式中删除引号

jquery - django HttpResponseRedirect 没有重定向

javascript - 在 javascript 中使用单选按钮更改图像

jquery - 如何在不再次运行 jquery 搜索的情况下进一步过滤 jquery 元素数组?

javascript - .scroll() 只运行一次

html - 如何将 iframe 视频缩放到更小的尺寸以适应 iOS 中的 UIWebView 框架?

javascript - 模态不起作用

javascript - AJAX:帮助让 xml 显示在 html 中