<div class="marquee">
<div class="marquee__wrap">
<div class="marquee__content">
<span>Лучшие мастера</span>
<span>Безопасно</span>
<span>Конфиденциально</span>
</div>
</div>
</div>
.marquee {
padding: 5px 0;
background-color: #000;
color: #fff;
}
.marquee__wrap {
display: flex;
}
.marquee__content {
white-space: nowrap;
flex-shrink: 0;
animation: marquee 5s linear infinite;
}
.marquee__content span {
padding: 0 25px;
font-size: 22px;
font-family: sans-serif;
font-weight: bold;
font-style: italic;
line-height: 1.3;
}
@keyframes marquee {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
document.addEventListener('DOMContentLoaded', () => {
// Marquee
const marquee = document.querySelector('.marquee')
const marqueeWrap = document.querySelector('.marquee__wrap')
const marqueeContent = document.querySelector('.marquee__content')
function duplicateItems() {
const marqueeWidth = marquee.offsetWidth
const marqueeContentWidth = marqueeContent.offsetWidth
const originalContent = marqueeWrap.innerHTML
const itemsNeeded = Math.ceil(marqueeWidth / marqueeContentWidth) + 1
const duplicatedItems = Array.from(
{ length: itemsNeeded },
() => originalContent
).join('')
marqueeWrap.innerHTML = duplicatedItems
}
window.addEventListener('resize', duplicateItems)
window.addEventListener('load', duplicateItems)
})
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.