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)
}