<div style="width: 300px;background-color: black;color: ivory;">
<style>
.marquee {
overflow: hidden;
font-size: 0;
font-family: sans-serif;
text-transform: uppercase;
white-space: nowrap;
cursor: default;
user-select: none;
}
.marquee__inner {
font-size: 2rem;
white-space: nowrap;
display: inline-block;
}
</style>
<div id="marquee1" class="marquee">
<div class="marquee__inner">Lorem ipsum dolor sit amet, <strong>consectetur adipisicing elit.</strong> </div>
</div>
</div>
<script>
function animateMarquee(el, duration) {
const innerEl = el.querySelector('.marquee__inner');
const innerWidth = innerEl.offsetWidth;
const cloneEl = innerEl.cloneNode(true);
el.appendChild(cloneEl);
let start = performance.now();
let progress;
let translateX;
requestAnimationFrame(function step(now) {
progress = (now - start) / duration;
if (progress > 1) {
progress %= 1;
start = now;
}
translateX = innerWidth * progress;
innerEl.style.transform = `translate3d(-${translateX}px, 0 , 0)`;
cloneEl.style.transform = `translate3d(-${translateX}px, 0 , 0)`;
requestAnimationFrame(step);
});
}
const marquee1 = document.querySelector('#marquee1');
animateMarquee(marquee1, 15000);
</script>
Есть такой код, нужно сделать так чтобы при наведении курсора на этот элемент прокрутка его останавливалась. А при обратном действии анимация возобновлялась с того же места где остановилась. Как это сделать не знаю. Много чего перепробовал но ничего не работает хорошо.