我有2个div,一个位于绝对右侧:0和另一个相对定位的中央屏幕。当窗口的宽度太小时,它们会重叠。发生这种情况时如何调用javascript函数?
感谢。 麦克
编辑以使更清楚。
答案 0 :(得分:2)
要检查重叠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";
}
}
您可能希望在该功能中进行更多检查,例如看看盒子是否已经内嵌显示,等等。但那应该会给你一个好的起点。
编辑添加了一些诊断和修复错误
答案 1 :(得分:1)
这样做:
<script type="text/javascript">
document.getElementById('example').style.display = "inline";
</script>
...
<div id="example"> ... </div>
答案 2 :(得分:0)
document.getElementById('div_id').style.display = 'inline-block'
document.getElementById('div_id').offsetWidth
给出了div的宽度
offsetHeight, offsetLeft, offsetTop
也很有用。