JavaScript 图片向上无缝滚动是一种网页动画效果,通过不断移动图片的位置,使其看起来像是在向上滚动。这种效果通常用于展示一系列图片,例如新闻滚动条、广告轮播等。
以下是一个简单的JavaScript图片向上无缝滚动的实现示例:
<!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: 100%;
height: 200px;
overflow: hidden;
position: relative;
}
#scrollContent {
position: absolute;
width: 100%;
}
.scrollItem {
height: 50px;
line-height: 50px;
text-align: center;
border-bottom: 1px solid #ccc;
}
</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 class="scrollItem">图片4</div>
<div class="scrollItem">图片5</div>
</div>
</div>
<script>
function startScroll() {
const container = document.getElementById('scrollContainer');
const content = document.getElementById('scrollContent');
const itemHeight = document.querySelector('.scrollItem').offsetHeight;
const totalItems = content.children.length;
// 复制第一项到最后
const firstItem = content.children[0].cloneNode(true);
content.appendChild(firstItem);
let scrollPosition = 0;
setInterval(() => {
scrollPosition -= 1; // 向上滚动
content.style.transform = `translateY(${scrollPosition}px)`;
// 当第一项完全移出视图时,重置位置
if (Math.abs(scrollPosition) >= itemHeight) {
scrollPosition = 0;
content.style.transition = 'none';
content.appendChild(content.children[0]);
content.style.transition = 'transform 0.5s linear';
}
}, 20);
}
window.onload = startScroll;
</script>
</body>
</html>
requestAnimationFrame
代替setInterval
。通过以上方法,可以有效实现并优化JavaScript图片向上无缝滚动效果。
领取专属 10元无门槛券
手把手带您无忧上云