Не работает остановка/возобновление цикла

Написал скрипт, который меняет картинку каждую 1 сек.

Но у меня проблема, цикл не останавливается при наведении и уходе мыши на child_block.

То есть, при наведении мыши на картинку, картинки должны перестать меняться. А при уходе мыши с картинки, картинки снова должны меняться.

Как пофиксить эту проблему?

Проблемные места кода я пометил комментами.

let main = document.querySelector('.main_block');
let child_block = document.querySelector('.child_block');

let xep = document.createElement('img');              
xep.className = 'img_s';
child_block.prepend(xep);

const colors = [                 
{name: 'https://i.ibb.co/JkTVvVP/1.png', interval: 1000},
{name: 'https://i.ibb.co/GPZRcL4/2.jpg', interval: 1000},
{name: 'https://i.ibb.co/9wdcLz8/3.png', interval: 1000},
]


let count =0;   
function change(){  


if(count === colors.length){     
count = 0;  
}

xep.src = colors[count].name;
  
cycle = setTimeout(change, colors[count].interval);
count = count + 1;
}

let cycle = setTimeout(change,1000);

main.addEventListener('mouseover', function(e){  // ******** Остановка цикла не работает =( ********
let child = e.target.className;

if(child == 'child_block'){
clearTimeout(cycle);
}       
})


 main.addEventListener('mouseout', function(e){  // ********Возобновление цикла не работает =( ********
let child = e.target.className;

if(child == 'child_block'){
cycle = setTimeout(change, 1000);
}
    
})
body{
display:grid;
place-items:center;     
user-select:none;
}


.main_block{
display:grid;
place-items:center; 
border:1px solid black;
width: 50%;
height:500px;
margin:50px;
place-items:center; 
}

.img_s{
width:100%;
height:100%;    
border:1px solid black;
z-index:-1;
}

.child_block{
border:1px solid red;
width:50%;
height:80%;
z-index:1;
    
}
<div class = "main_block">


<div class = "child_block">


</div>

</div>


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