簡體   English   中英

在setTimeout中使用fadeOut的計時問題

[英]Timing problem by using fadeOut in setTimeout

我的jQuery代碼有問題。

首先,它將顯示帶有改組效果的文本,然后在11秒鍾后淡出並再次執行此操作。 一段時間后,我在開始改組效果時獲得了fadeOut效果。

看來他們在不同的時間軸上運行。

$( document ).ready( function(){

     function textShuffle() {
        $( "#text" ).shuffleLetters().fadeIn().delay( 11000 ).fadeOut( 400 );
        setTimeout( textShuffle, 12000 );
     }
     textShuffle();

});

我怎樣才能解決這個問題。

也許您應該在fadeOut完成后調用遞歸方法,如下所示:

$( document ).ready( function() {

    function textShuffle() {
        $("#text").shuffleLetters().fadeIn().delay(11000).fadeOut(400, Function() {
            setTimeout(textShuffle, 12000);});
    }

    textShuffle();
});

在通過刪除.shuffleLetters()提及@ alexander-nied后,其余腳本工作正常,我意識到該函數需要花費超過600ms的時間才能完成,而且我無法確定完成該任務需要多少時間。

所以現在我在調用setTimeout()之前將promise()添加到#text中

function textShuffle() {
    $( "#text" ).shuffleLetters().fadeIn().delay( 11000 ).fadeOut( 400 );
    $( "#text" ).promise().done( function(){
            setTimeout( textShuffle, 1 );
    });
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM