2013-04-17 34 views
4

我有長的div包含我的網站上的一些用戶的圖像。 我似乎無法弄清楚如何在隱藏其兄弟姐妹後緩慢居中div。隱藏兄弟姐妹後緩慢中心div jQuery

http://jsfiddle.net/sXpT3/

我的問題是如何躲在別人後面添加我的jQuery腳本慢慢中心股利點擊, 。

我試圖使用動畫,但似乎沒有工作,如果我不把每個div放在絕對模式。

CSS

.users { 
    width:100%; 
    text-align:center; 
    height: 100px; 
    top:50%; 
    margin-top:-100px; 
    position:absolute; 
} 

.user { 
    display:inline-block; 
    *display:inline; 
    width:90px; 
    height:90px; 
    margin:0 10px; 
    border-radius:50px; 
    border:5px solid rgba(255,255,255,0.9); 
} 

jQuery的

$(function() { 
    $('.user').click(function() { 

     if ($(this).hasClass('active')) { 
      $('.user').not(this).fadeIn(200); 

      $(this).removeClass('active'); 
     } else { 

      $('.user').not(this).fadeOut(200); 

      $(this).addClass('active'); 
     } 

    }); 
}); 

HTML

<div class="users"> 
    <div style="background:#0F9" class="user"> 
    </div> 
    <div style="background:#0CF" class="user"> 
    </div> 
    <div style="background:#F66" class="user"> 
    </div> 
    <div style="background:#F09" class="user"> 
    </div> 
    <div style="background:#FCF" class="user"> 
    </div> 
    <div style="background:#996" class="user"> 
    </div> 
</div> 
+0

你介意我們改變了CSS或做你喜歡它保持原樣? – Dom

+0

請隨時做任何你想做的事情:) :) – Dimser

回答

3

通過僅褪色出來,而不是隱藏它,然後動畫隱藏,我可以完成你的效果」重新尋找。
小提琴:http://jsfiddle.net/sXpT3/1/
JS:

$(function() { 
    $('.user').click(function() { 

     if ($(this).hasClass('active')) { 
      $(this).removeClass('active'); 
      $('.user').not(this).show(200).fadeTo(200,1); 
     } else { 

      $(this).addClass('active'); 
      $('.user').not(this).fadeTo(200,0).hide(200); 
     } 

    }); 
}); 
+1

+1 ['.hide()'](http://api.jquery.com/hide/)的好用處。 – Dom

+0

這太棒了! :)謝謝..雖然我有一件事..我注意到,如果我放慢了居中過程,所選擇的div在居中過程結束時「跳」了一下。有沒有辦法阻止? – Dimser

+0

這是一個很好的解決方案,但它仍然受到'inline-block'限制的不良影響,因此在根據需要向上移動行之前,其他行上的任何項目都會向左或向右滑動。爲了解決這個問題,雖然你需要更廣泛的JS和樣式變化來獲得一個很好的直接'點a到b'動畫。 – DigTheDoug