2013-03-14 69 views
0

我有一個外部div包含內部div。同時向下滑動div和.fadeIn()內容,反之亦然?

我想滑動外部div,而外部div滑落內部div應淡入淡出。

我不想在正在滑落的外部div中淡入淡出!

我得到它通過給內部內容的最低高度與一些workarround工作,褪色,在但當內部內容具有可變高度它就會變得混亂..

是否有一個很好的解決方案這個問題可用?

我創建了一個小提琴來證明我的問題: http://jsfiddle.net/6Brxv/

驗證碼: HTML:

<a href="#" onclick="$('#outer1').slideToggle().find('.inner div').fadeToggle();">Toggle (will work)</a> 

<div id="outer1" class="outer"> 
    <div class="inner"> 
     <div class="item">Hallo1</div> 
    </div> 
    <div class="inner"> 
     <div class="item">Hallo2</div> 
    </div> 
    <div class="inner"> 
     <div class="item">Hallo3</div> 
    </div> 
</div> 

<br /><br /> 

<a href="#" onclick="$('#outer2').slideToggle().find('.inner div').fadeToggle();">Toggle (will not work)</a> 

<div id="outer2" class="outer"> 
    <div class="inner"> 
     <div class="item">Hallo1! We have more height than 50px! <br />#<br />#<br />#<br />#<br />#<br />#</div> 
    </div> 
    <div class="inner"> 
     <div class="item">Hallo2! We have more height than 50px! <br />#<br />#<br />#<br />#<br />#<br />#</div> 
    </div> 
    <div class="inner"> 
     <div class="item">Hallo3! We have more height than 50px! <br />#<br />#<br />#<br />#<br />#<br />#</div> 
    </div> 
</div> 

CSS:

.outer { 
    background-color: red;  
} 

.inner { 
    min-height: 50px; 
} 
+0

http://stackoverflow.com/questions/7520366/jquery-fade-and-slide-simultaneously – Ven 2013-03-14 13:16:59

+0

請做一個小提琴,並把它的鏈接放在這裏。這對於回答者來說是很有幫助的 – Rizstien 2013-03-14 13:17:24

+0

什麼是「變得混亂」意味着什麼?我只是想知道。 – egig 2013-03-14 13:21:59

回答

3

傳遞queue: false參數:

$('#element').fadeIn({ duration: 1000, queue: false }); 
$('#child').slideDown(1000); 

這將允許jQuery移動到幻燈片而無需等待淡出完成。

+0

看我的編輯。我相信這應該工作。我不明白爲什麼你需要淡化與父母動畫分開的孩子。它會給你同樣的效果。 – 2013-03-14 14:29:02

+0

謝謝你的工作!在這裏我的例子工作小提琴:http://jsfiddle.net/6Brxv/1/ – 2013-03-14 14:33:16

+0

我現在明白我做錯了什麼..我試圖先下滑,然後淡入。通過開始淡化元素,元素在那裏具有完整的'高度',因此滑動以它應該的方式工作。感謝您的幫助! – 2013-03-14 14:43:23