2012-02-08 51 views
0

我正在使用JQuery-UI。我想在當前的效果完成之前開始一個新的效果。可能嗎?效果結束前的回調?

目前,我用這樣的代碼的東西:

div1.hide({ 
     duration: 1000, 
     easing: 'easeOutQuint', 
     effect: 'drop', 
     direction : 'up' 
    }); 
    div1.promise().done(function(){ 
     div2.show(); 
    }); 

謝謝!

編輯:我想避免定時器,如果可能的話。

回答

2

你可以做到這一點當前效果:

div1.hide({ 
    duration: 1000, 
    easing: 'easeOutQuint', 
    effect: 'drop', 
    direction : 'up' 
}); 
setTimeout(function(){ 
    div2.show(); 
}, 900); 

以上,將有效的div1.hide()結束時間之前啓動div2.show() aproximately 100毫秒(在其他單詞:1000毫秒動畫開始後900毫秒)。

+0

謝謝 - 看起來我試圖用延遲對象過度複雜化它,當它非常簡單明瞭時。 – johnjohn 2012-02-08 16:39:50

+0

@johnjohn:不客氣。 – Tadeck 2012-02-08 17:24:27

0

你可以簡單地通過使用setTimeout()取消使用$.stop()

+0

我想同時運行兩個效果,但第二個會在第一次啓動後的某個時刻觸發 - 遺憾的是沒有更好地說明這一點。 – johnjohn 2012-02-08 16:30:09

+1

不用擔心... setTimeout()將作爲@Tadeck共享的方式處理它。 – SliverNinja 2012-02-08 16:46:44