JavaScript 实现无缝循环滚动效果通常涉及到定时器(如 setInterval
)和 DOM 操作。以下是一个简单的示例代码,展示了如何实现一个无缝循环滚动的列表:
<div class="scroll-container">
<ul class="scroll-content">
<li>内容1</li>
<li>内容2</li>
<li>内容3</li>
<!-- 更多内容 -->
</ul>
</div>
.scroll-container {
width: 300px;
overflow: hidden;
position: relative;
}
.scroll-content {
list-style: none;
padding: 0;
margin: 0;
position: absolute;
white-space: nowrap;
}
.scroll-content li {
display: inline-block;
}
function startScroll(container, content, speed) {
let firstItem = content.children[0];
let clone = firstItem.cloneNode(true);
content.appendChild(clone);
function scroll() {
container.scrollLeft += 1;
if (container.scrollLeft >= firstItem.offsetWidth) {
container.scrollLeft = 0;
}
}
setInterval(scroll, speed);
}
document.addEventListener('DOMContentLoaded', () => {
const container = document.querySelector('.scroll-container');
const content = document.querySelector('.scroll-content');
startScroll(container, content, 20); // 速度可以根据需要调整
});
setInterval
函数用于周期性地执行某段代码。cloneNode
方法复制 DOM 元素,用于实现无缝循环效果。requestAnimationFrame
替代 setInterval
。通过以上方法,可以有效实现并优化 JavaScript 的无缝循环滚动效果。
领取专属 10元无门槛券
手把手带您无忧上云