JavaScript实现上下无缝滚动的效果,通常涉及到定时器(如setInterval
)和DOM操作。以下是一个简单的示例代码,展示了如何实现一个基本的上下无缝滚动效果:
setInterval
函数可以周期性地执行一段代码。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>无缝滚动</title>
<style>
#scrollContainer {
width: 300px;
height: 100px;
overflow: hidden;
position: relative;
}
#scrollContent {
position: absolute;
width: 100%;
transition: top 0.5s;
}
.scrollItem {
height: 30px;
line-height: 30px;
text-align: center;
}
</style>
</head>
<body>
<div id="scrollContainer">
<div id="scrollContent">
<div class="scrollItem">内容1</div>
<div class="scrollItem">内容2</div>
<div class="scrollItem">内容3</div>
</div>
</div>
<script>
const container = document.getElementById('scrollContainer');
const content = document.getElementById('scrollContent');
const items = document.querySelectorAll('.scrollItem');
let index = 0;
function scroll() {
content.style.top = `-${index * items[0].offsetHeight}px`;
index++;
if (index >= items.length) {
index = 0;
setTimeout(() => {
content.style.transition = 'none';
content.style.top = '0';
setTimeout(() => {
content.style.transition = 'top 0.5s';
}, 50);
}, 500);
}
}
setInterval(scroll, 2000);
</script>
</body>
</html>
requestAnimationFrame
代替setInterval
。通过以上示例和解释,你应该能够理解并实现一个简单的上下无缝滚动效果,并解决一些常见问题。
领取专属 10元无门槛券
手把手带您无忧上云