2009-07-07 35 views
3

我有一個JQuery函數來切換我的佈局中的一個div。問題在於當div出現或消失時,整個佈局在屏幕上移動。有沒有辦法在不改變佈局的情況下實現相同的顯示/隱藏效果?如何避免佈局div上的JQuery toggle()導致佈局移動?

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

回答

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即可。

+0

我自己使用它,但它不太具有語義友好性。 – montrealist 2009-07-07 18:35:58

+0

@dalbaeb - 「語義友好」是什麼意思?我的意思是,我知道這意味着什麼,但在這種情況下呢? – karim79 2009-07-07 18:45:11

4

嘗試編寫一個使用可見性的新函數:隱藏而不是顯示:無。這將保持CSS框(和佈局)而不顯示div。

0

喬納森桑普森的答案將工作 - 或者不知道你在做什麼(標記和所需的效果),我會使用絕對定位與高Z指數,這將使其脫離文檔流。這是模式窗口/燈箱通常使用的模式。這是一個tutorial