Сроки проблема с использованием fadeOut в setTimeout - PullRequest
0 голосов
/ 23 сентября 2018

У меня возникли проблемы с моим кодом jQuery.

при запуске он отображает текст с эффектом тасования, затем через 11 секунд он исчезает и делает это снова.Через некоторое время у меня появился эффект fadeOut в начале эффекта перетасовки.

Кажется, они работают на другой временной шкале.

$( document ).ready( function(){

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

});

Как я могу это исправить.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

После того, как @ alexander-nied упомянул об удалении .shuffleLetters (), оставшаяся часть сценария работает нормально, я понял, что выполнение функции занимает больше 600 мс, и я не могу определить, сколько времени нужно для выполнения задачи.

Так что теперь я добавил обещание () в #text перед вызовом setTimeout ()

function textShuffle() {
    $( "#text" ).shuffleLetters().fadeIn().delay( 11000 ).fadeOut( 400 );
    $( "#text" ).promise().done( function(){
            setTimeout( textShuffle, 1 );
    });
 }
0 голосов
/ 23 сентября 2018

Возможно, вам следует вызвать рекурсивный метод после завершения fadeOut, например:

$( document ).ready( function() {

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

    textShuffle();
});
...