2012-07-05 88 views
2

好吧所以我想重新創建jQuery中的「slideUp」和「slideDown」功能,但是當flexbox用於顯示時!flexDown flexbox的動畫

jQuery.fn.toggleFlexbox = function() { 
    var elm = $(this[0]); 
    if(elm.css('display') === "none"){ 
     elm.css('display', '-webkit-flex'); 
    }else{ 
     elm.slideUp('fast'); 
    } 
}; 

這是我在多大程度上得到了(目前上面的代碼工作,但是,當我們從「無」切換不會滑動到「-webkit-FLEX」有了它,我嘗試以下)

elm.animate({"display":"-webkit-flex"}, 1000); 

這根本無法工作,沒有動畫,沒有錯誤或什麼...


奇怪的是林這樣做,因爲,如果我用我所有的對象開始的頁面(元素與類「設置「)我想加載爲display fl恩,然後隱藏他們

$('.settings').hide(); 

這似乎當我點擊了slideDown設置部分不適用Flexbox的,但我已經去到另一個頁面,回來時,它的行爲正確......很奇怪!


奇怪的是,我不能在提琴手創建它.... http://jsfiddle.net/FzqA7/ ..

回答

1

如果我正確理解你的問題(這是個很大的可能),它聽起來就像你我遇到了同樣的問題,前一陣子我一直在掙扎,也就是說,只有一半的動畫一旦啓動(一旦滑下,slideUp將不起作用,反之亦然)。

我在動畫的第一次迭代之後通過添加「返回」來解決它,雖然這是一個單擊事件觸發器,所以結束該函數對於多個排列是至關重要的。

嘗試:

jQuery.fn.toggleFlexbox = function() { 
     var elm = $(this[0]); 
     if(elm.css('display') === "none"){ 
      elm.css('display', '-webkit-flex'); 
      return; 
     }else{ 
      elm.slideUp('fast'); 
      return; 
     } 
    }; 

很抱歉,如果我完全誤解了你的問題,但它是一個有點曖昧....