jQuery как выполнить переход при изменении текста setTimeout

#jquery

Вопрос:

как мне сделать так, чтобы каждое изменение текста имело переход «затухание» и «затухание», если я даю интервал в 5 секунд, как я даю затухание и затухание

 let timer = 0; do_test(timer);  function do_test(timer){  timer  ;  if (timer gt; 29){  $('body').css('background','blue');  }else if (timer gt; 20){  $('body').css('background','green');  }else if (timer gt; 10){  $('body').css('background','pink');  }else if (timer gt; 3){  $('body').css('background','yellow');  }  $('#cnt').text(timer);  if (timer lt; 40){  setTimeout(() =gt; {do_test(timer)},500);  } else {  $('body').html('lt;div id="dun"gt;DONElt;/divgt;');  } }  

этот html

 lt;div id="cnt"gt;lt;/divgt;  

Ответ №1:

Вы можете использовать fadeIn и fadeOut

 let timer = 0; do_test(timer); const body = $("body");  function do_test(timer){  timer  ;  const elem = $("#cnt");  elem.fadeOut(500, function () {  elem.text(timer);  if (timer===10) body.css('background','green');  else if (timer===25) body.css('background','yellow');  else if (timer===30) body.css('background','red');  elem.fadeIn(500, function () {  if (timer lt; 50) do_test(timer);  });  }); } 
 body {  transition: background .5s linear; } 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div id="cnt"gt;lt;/divgt; 

Ответ №2:

Вы можете использовать setInterval для этого.

 const $body = $('body'),   cnt = $('#cnt');  let i = 0, do_test = setInterval(function() {  i  ;  if (i gt; 0 amp;amp; i lt; 2) setBg($body, 'blue');  else if (i gt;2 amp;amp; i lt; 4) setBg($body, 'green');  else if (i gt; 4 amp;amp; i lt; 6) setBg($body, 'pink');  else if (i gt; 6 amp;amp; i lt; 8) setBg($body, 'yellow');  if(i == 9){  clearInterval(do_test);  setBg($body, 'white');  fadeText('DONE');  }else {  fadeText(i);  } },1000);  function fadeText(text){  cnt.css('opacity', 0);  setTimeout(function() {  cnt.text(text);  cnt.css('opacity', 1);  }, 500); }  function setBg(sel, col){  sel.css('background',col); } 
 body {  transition: background .3s ease; }  #cnt {  text-align: center;  font-size: 30px;  line-height: 100px;  transition: opacity .5s ease; } 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;div id="cnt"gt;lt;/divgt;