2014-10-06 84 views
0

我必須使用modalbox對話框以及fadout模式框疊加,並且必須在同一時間發生,因此不可能在幻燈片的完成函數中執行淡出首先在兩個html元素上做滑動和淡出,然後繼續

$('#modalbox-dialog').slideUp({ 
    done:function() { 

    } 
}); 

$('#modalbox-overlay').fadeOut(); 

後效果基本show和淡出完成這些事情必須進行

$('.nav > *').remove(); 
$('#foo-helper > *').remove(); 
$(FilterView.currentDiv).insertAfter('#hidden-divs-helper'); 
FilterView.currentDiv = ''; 
+0

你可以把兩個動畫的持續時間,也投入了延遲上滑動畫等於持續時間。所以他們都在同一時間運行。 – Darren 2014-10-06 11:40:22

+0

我首先用setTimeout對它進行了編程,並在400ms後執行了第二個代碼塊,因爲持續時間是400,但是我想製作一個交叉解決方案......這樣我就不能總是改變settimeout時間 – 2014-10-06 11:42:20

+0

Don不使用超時。使用slideUp和fadeOut的屬性。檢查文檔的使用情況 – Darren 2014-10-06 11:45:33

回答

0

使用$.when()

$(document).ready(function() { 
    var f1 = $('#modalbox-dialog').slideUp({duration:10000}) 
    var f2 = $('#modalbox-overlay').fadeOut(); 

    $.when(f1, f2).done(function (v1, v2) { 
     alert('finished both'); 
    }); 
}); 

看到這個小提琴:http://jsfiddle.net/oLm8L1pL/

我設置持續時間特別高,以演示效果。

0

這是我的解決方案

hide: function() { 

    var deferred = $.Deferred(); 

    var slideUp = $('#modalbox-dialog').slideUp(); 
    var fadeOut = $('#modalbox-overlay').fadeOut(); 

    $.when(slideUp, fadeOut).done(function() { 
     deferred.resolve(); 
    }); 

    return deferred.promise(); 
} 

希望它有助於進一步的問題:)

相關問題