要实现 JavaScript 无缝滚动图片特效,可以利用 CSS 动画结合 JavaScript 来控制图片的滚动。以下是一个完整的示例,包括 HTML、CSS 和 JavaScript 代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>无缝滚动图片特效</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="scrolling-wrapper">
<div class="scrolling-content">
<img src="image1.jpg" alt="图片1">
<img src="image2.jpg" alt="图片2">
<img src="image3.jpg" alt="图片3">
<!-- 复制第一张图片以实现无缝滚动 -->
<img src="image1.jpg" alt="图片1">
</div>
</div>
<script src="script.js"></script>
</body>
</html>
styles.css
).scrolling-wrapper {
width: 100%;
overflow: hidden;
white-space: nowrap;
box-sizing: border-box;
}
.scrolling-content {
display: inline-block;
animation: scroll-left 10s linear infinite;
}
.scrolling-content img {
width: 300px; /* 根据需要调整图片宽度 */
height: auto;
margin-right: 20px; /* 图片之间的间距 */
}
@keyframes scroll-left {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-100%);
}
}
script.js
)// 可选:动态调整动画速度根据图片数量
window.addEventListener('load', () => {
const content = document.querySelector('.scrolling-content');
const images = content.querySelectorAll('img');
const imageCount = images.length - 1; // 减去复制的最后一张图片
const duration = 10 + imageCount * 2; // 每张图片增加2秒
content.style.animationDuration = `${duration}s`;
});
@keyframes
定义动画的关键帧,实现元素的平滑移动。window.onload
或使用 Image
对象预加载图片。requestAnimationFrame
进行动画控制,确保动画在各种环境下的一致性。通过以上代码和说明,你可以实现一个基本的无缝滚动图片特效,并根据具体需求进行进一步的定制和优化。
领取专属 10元无门槛券
手把手带您无忧上云