JSFiddle - React, Tailwind, and code Playground

HTML

<main>
  <p>
   This is a test.
  </p>

  <ul>
    <li>
      <img src="https://picsum.photos/300/200">
    </li>
    <li>
      <img src="https://picsum.photos/300/200">
    </li>
    <li>
      <img src="https://picsum.photos/300/200">
    </li>
  </ul>
</main>

CSS

* { box-sizing: border-box; }

main {
  overflow: hidden;
  --image-width: 300px;
  --image-height: 200px;
}

ul {
  display: flex;
  flex-flow: row nowrap;
  margin: 0;
  padding: 0;
  overflow-x: scroll;
  overflow-y: clip;
}

li {
  flex-shrink: 0;
  flex-grow: 0;
  list-style-type: none;
  width: var(--image-width);
  height: var(--image-height);
}

li img {
  width: var(--image-width);
  height: var(--image-height);
}

li img:hover {
  position: fixed;
  transform: scale(1.5);
}

JavaScript

let list = document.querySelector('ul');
let imgs = document.querySelectorAll('img');

imgs.forEach(i => {
  i.addEventListener('mouseenter', event => {
    let l = i.offsetLeft - list.scrollLeft;
    requestAnimationFrame(ts => {
    	i.style.left =  l + 'px';
    });
  });
  
  i.addEventListener('mouseleave', event => {
    requestAnimationFrame(ts => {
    	i.style.left = 'auto';
    });
  });
});