JSFiddle - React, Tailwind, and code Playground

HTML

<img src="https://i.ytimg.com/vi/YNiI6C0142g/maxresdefault.jpg">

CSS

img {
  width: 100px;
}

JavaScript

let img = document.querySelector("img");
let min_wid = parseFloat(getComputedStyle(img).width);
let d = 1, i = 0;


(function zoom() {
  let wid = parseFloat(img.style.width || min_wid) + 4 * d;
  img.style.width = wid + "px";
  
  if (i++ > 180) {
    d *= -1;
    i = 0;
    
    setTimeout(zoom, 3000);
    return;
  }
  
  requestAnimationFrame(zoom); 
})();