Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida + sugestão

Creio que ao invés de usar o gif de carregamento, seria bem mais "bonito" e agradavel para o usuario fazer o texto ir desaparecendo aos poucos e logo apos o data estiver preenchido e a pergunta selecionada o texto colte aparecendo novamente aos poucos. Fiz com que o texto demore cerca de 4 seg para desaparecer e aparecer novamente. Teria como fazer com que o texto so volte a aparecer assim q a pergunta ja tenha sido sorteada?

$("#btn-frase").click(fraseAleatoria);

function fraseAleatoria(){
    animation();//Chama funçao animation para fazer com q o texto desapareça aos poucos.
    $.get("http://localhost:3000/frases",trocaFrase).fail(function(){
        $("#erro").toggle();
        setTimeout(function(){
            $("#erro").toggle();
        },2000)
    });
}

function trocaFrase(data){
    var frase = $(".frase");
    var num = Math.floor(Math.random()*data.length);
    frase.text(data[num].texto)
    attTamanhoFrase()
    alterarTempo(data[num].tempo);
}

function animation(){
     $(".frase").fadeOut(1000);
     setTimeout(function(){
         $(".frase").fadeIn(1000);
     },2500)
}
1 resposta
solução!

Fala aí Henrique, beleza? É possível sim, para isso, devemos primeiramente mexer no seu código, a ideia seria separar as funções em duas:

function animationOut(){
    $(".frase").fadeOut(1000);
}

function animationIn(){
    $(".frase").fadeIn(1000);
}

Isso porque elas serão utilizadas em lugares diferentes, agora, como segundo parâmetro do .get você passou uma função, dentro dela, pode estar fazendo a animação para o texto voltar.

function trocaFrase(data){
    var frase = $(".frase");
    var num = Math.floor(Math.random()*data.length);
    frase.text(data[num].texto)
    attTamanhoFrase()
    alterarTempo(data[num].tempo);
    animationIn();
}

Uma das possíveis soluções seria essa.

Espero ter ajudado