你如何避免布局div上的JQuery切换()导致布局移动?

时间:2009-07-07 18:29:40

标签: jquery css toggle html

我有一个JQuery函数可以切换布局中的一个div。问题是当div出现或消失时,整个布局在屏幕上移动。有没有办法在不改变布局的情况下实现相同的显示/隐藏效果?

<script>
  $(document).ready(function(){
    $("button").click(function () {
      $("#layoutDiv").toggle();
    });
  });
</script>

3 个答案:

答案 0 :(得分:9)

您可以将该div包装在另一个div中,该div保持适当的宽度/高度以保持布局一致。

<div style="width:300px;height:200px">
  <div class="animateMe">
    <p>When I close, the outer div will still be there.</p>
  </div>
</div>

如果您事先不知道高度/宽度,可以在页面加载时使用javascript以编程方式设置它。只需获取可折叠div的.width()和.height()值,并将它们应用到外部div的css。

答案 1 :(得分:4)

尝试编写一个使用visibility:hidden而不是display:none的新函数。这将保持CSS框(和布局)而不显示div。

答案 2 :(得分:0)

Jonathan Sampson的回答是可行的 - 或者不知道你在做什么(标记和所需的效果)我将使用具有高z-index的绝对定位,这将使其脱离文档流程。这是模态窗口/灯箱通常使用的。这是一个tutorial