Плавный показ и скрытие картинок и текста конкретно с данным скриптом

Всем привет! Работа скрипта меня устраивает, но хотелось бы добавить плавность перехода при открытии и скрытии элементов (картинок и текста) с использованием именно с этим скриптом. Всем спасибо.

const frazas = [
    {src: "https://habrastorage.org/webt/7e/zs/bh/7ezsbh3mvq1wrlzft96v5tt_j04.png",  
    imgpos: [40, 40],  
    text: "Час сидим<br> клёва нет.",   
    textpos: [70, 68]
    },            
    {src: "https://habrastorage.org/webt/pq/ep/mf/pqepmfu6zlmoloz4kwah3vjmn_e.png",  
    imgpos: [40, 80],  
    text: "С клёвом<br> тишина!",   
    textpos: [70, 100]
    },            
    {src: "https://habrastorage.org/webt/pq/ep/mf/pqepmfu6zlmoloz4kwah3vjmn_e.png",  
    imgpos: [40, 180],  
    text: "Клёва нет<br> и не будет!",  
    textpos: [70, 200]
    },            
    {src: "https://habrastorage.org/webt/7e/zs/bh/7ezsbh3mvq1wrlzft96v5tt_j04.png",  
    imgpos: [40, 40],  
    text: "Вот и Андрюха<br> на горизонте!",   
    textpos: [70, 60]
    },            
];
 
const img = document.querySelector('.kartink img');
const txt = document.querySelector('.tekst b');
 
const delay = (t) => new Promise (r => setTimeout(r, 4500));
 
async function cycle () {
    await delay(4500);
    for (let f of frazas) {
       img.src = f.src;
       img.style = `position:absolute;top:${f.imgpos[0]}px; left:${f.imgpos[1]}px;opacity: 1;`
        txt.innerHTML = f.text;
        txt.style = `position: absolute; font-size:13px; opacity: 1; top: ${f.textpos[0]}px; left: ${f.textpos[1]}px;`;
        await delay(4500);
    }
    
    txt.textContent = '';    
    img.style.display = 'none';
  
    for (let f of fishImages) {
        img.src = f.src;
        img.style = `position: absolute; top: ${f.pos[0]}px; left: ${f.pos[1]}px;opacity: 1;transition:  2s;`
        await delay(4500);
    }
 
}
 
cycle();
 <div  class ="kartink">
  <img>
</div> 

<div  class ="tekst">
  <b>
</div>


Ответы (0 шт):