要实现图片上下循环滚动的效果,可以使用JavaScript结合CSS动画来完成。以下是一个简单的示例代码,展示了如何实现这一效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>图片上下循环滚动</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="scroll-container">
<div class="scroll-content">
<img src="image1.jpg" alt="Image 1">
<img src="image2.jpg" alt="Image 2">
<img src="image3.jpg" alt="Image 3">
<!-- 可以添加更多图片 -->
</div>
</div>
<script src="script.js"></script>
</body>
</html>/* styles.css */
body {
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
}
.scroll-container {
width: 80%;
height: 300px;
overflow: hidden;
position: relative;
}
.scroll-content {
display: flex;
flex-direction: column;
animation: scroll 10s linear infinite;
}
.scroll-content img {
width: 100%;
height: auto;
}
@keyframes scroll {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-100%);
}
}// script.js
document.addEventListener("DOMContentLoaded", function() {
const scrollContent = document.querySelector('.scroll-content');
const images = scrollContent.querySelectorAll('img');
// 复制第一张图片到最后,实现无缝循环
const firstImage = images[0].cloneNode(true);
scrollContent.appendChild(firstImage);
// 调整动画时间以适应图片数量
const imageHeight = images[0].clientHeight;
const totalHeight = imageHeight * images.length;
const duration = (totalHeight / imageHeight) * 10; // 每张图片显示10秒
scrollContent.style.animationDuration = `${duration}s`;
});.scroll-container 和一个包含图片的 .scroll-content。@keyframes 定义了一个名为 scroll 的动画,使内容从下向上滚动。.scroll-content 的 animation 属性来应用这个动画。onerror 事件处理程序来处理加载失败的图片。will-change 属性优化动画性能:will-change 属性优化动画性能:通过以上步骤,你可以实现一个简单且高效的图片上下循环滚动效果。
没有搜到相关的文章