2010-01-13 58 views
1

我有4个面板,并且在顶部有一个清单,用于控制要查看的面板。我将如何设置它,以便如果他们取消选中其中一个面板,则其余部分将重新定位。有点模糊,所以:根据用户控制的可见性动态定位面板

___ ___ 
    | 1 | | 2 | 
    |___| |___| 
    ___ ___ 
    | 3 | | 4 | 
    |___| |___| 

所以,如果他们取消2和3,我想4是位置,旁边是1

___ ___ 
    | 1 | | 4 | 
    |___| |___| 

如果他们取消选中刚刚3,然后是4会去3的位置。这些面板也将居中在页面上,但如果像3这样的东西没有被选中,我希望第四个面板与第一个面板左对齐,而不是在它们之间居中。所以这样的:

___ ___ 
    | 1 | | 2 | 
    |___| |___| 
    ___ 
    | 4 | 
    |___| 

而且不是这样:

___ ___ 
    | 1 | | 2 | 
    |___| |___| 
     ___ 
     | 4 | 
     |___| 
+0

是面板1,2,3和4的所有固定宽度?我认为这只是区块设置的问题。 – Codesleuth 2010-01-13 13:33:22

回答

3

放置4块板(相同的固定大小)的固定容器,其是每个面板的至少两倍的宽度,但小于3倍内。浮动面板。举例如下:

CSS:

#panels { 
    width: 400px; 
} 
.panel { 
    float: left; 
    width: 190px; 
    height: 100px; 
    border: solid 1px #f00; 

} 

JS:

$(function(){ 
    $("div input[type='checkbox']").attr('checked',true); 
    $("div input[type='checkbox']").change(function() { 
      if($(this).attr('checked')) 
       $('#' + $(this).val()).show(); 
      else 
       $('#' + $(this).val()).hide(); 
     } 
    ); 
}); 

HTML:

<div> 
<label for="p1"><input type="checkbox" value="panel1" />1</label> 
<label for="p2"><input type="checkbox" value="panel2" />2</label> 
<label for="p3"><input type="checkbox" value="panel3" />3</label> 
<label for="p4"><input type="checkbox" value="panel4" />4</label> 
</div> 
<div id="panels"> 
<div class="panel" id="panel1">1</div> 
<div class="panel" id="panel2">2</div> 
<div class="panel" id="panel3">3</div> 
<div class="panel" id="panel4">4</div> 
</div> 
+0

啊好吧谢谢,我以为我已经尝试过,并有问题,但我现在得到它的工作。非常感谢。 – Justen 2010-01-13 14:13:28

+0

没问题。很高兴你得到它的工作:) – 2010-01-13 14:14:17

+0

我刚刚发现的一件事,面板是不同的高度,并导致对齐问题。像P1是600px,P2是300px,P3是400px。所以如果我隐藏所有的面板或者其他东西,然后显示1,2,然后3,第三个面板被挂在P1 – Justen 2010-01-13 14:17:54

相关问题