我有2个div,一个绝对定位在正确的位置:0,另一个相对定位的中心屏幕。当窗口的宽度太小时,它们会重叠。发生这种情况时,如何调用javascript函数?

谢谢。
麦克风

编辑使更清晰。

最佳答案

要检查是否有重叠的div,您可能想在页面加载后以及窗口调整大小时进行检查:

window.onload = checkOverlap;
window.onresize = checkOverlap;


然后使用一些偏移量检查:

function checkOverlap() {
   var centerBox = document.getElementById('centerDiv');
   var rightBox = document.getElementById('rightDiv');
   console.log("centerbox offset left: " + centerBox.offsetLeft);
   console.log("centerbox width: " + centerBox.offsetWidth);
   console.log("rightbox offset left: " + rightBox.offsetLeft);
   if ((centerBox.offsetLeft + centerBox.offsetWidth) >= rightBox.offsetLeft) {
      centerBox.style.display = "inline-block";
   } else {
      centerBox.style.display = "block";
   }
}


您可能想对该功能进行更多检查,例如查看该框是否已经内联显示,等等。但这应该为您提供一个良好的起点。

编辑:添加了一些诊断和固定的错误

09-17 05:38