首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图片不断向左循环滚动js特效代码

要实现图片不断向左循环滚动的JavaScript特效,可以使用CSS动画结合JavaScript来控制图片的滚动。以下是一个简单的示例代码:

HTML结构

代码语言:txt
复制
<!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="scrolling-wrapper">
        <img src="image1.jpg" alt="Image 1">
        <img src="image2.jpg" alt="Image 2">
        <img src="image3.jpg" alt="Image 3">
        <!-- 添加更多图片 -->
    </div>
    <script src="script.js"></script>
</body>
</html>

CSS样式

代码语言:txt
复制
/* styles.css */
body {
    margin: 0;
    overflow: hidden;
}

.scrolling-wrapper {
    display: flex;
    animation: scrollLeft 20s linear infinite;
}

.scrolling-wrapper img {
    width: 200px; /* 根据需要调整图片宽度 */
    height: auto;
}

@keyframes scrollLeft {
    0% {
        transform: translateX(100%);
    }
    100% {
        transform: translateX(-100%);
    }
}

JavaScript代码

代码语言:txt
复制
// script.js
document.addEventListener("DOMContentLoaded", function() {
    const wrapper = document.querySelector('.scrolling-wrapper');
    const images = wrapper.querySelectorAll('img');

    // 复制第一张图片到最后,以实现无缝循环
    const firstImage = images[0].cloneNode(true);
    wrapper.appendChild(firstImage);

    // 调整动画持续时间以匹配图片数量和速度
    const imageWidth = images[0].offsetWidth;
    const totalImages = images.length;
    const duration = (totalImages + 1) * 2; // 每张图片显示2秒
    wrapper.style.animationDuration = `${duration}s`;
});

解释

  1. HTML结构:创建一个包含图片的容器div,并为其添加一个类名scrolling-wrapper
  2. CSS样式
    • 使用flex布局使图片水平排列。
    • 定义一个名为scrollLeft的关键帧动画,使容器从右向左移动。
    • 设置动画持续时间为20秒,并设置为无限循环。
  • JavaScript代码
    • 在DOM加载完成后,选择滚动容器并复制第一张图片到最后,以实现无缝循环。
    • 根据图片数量和期望的速度调整动画持续时间。

应用场景

  • 网站背景:用于网站的背景滚动效果,增加视觉吸引力。
  • 广告横幅:在网页顶部或底部创建动态广告横幅。
  • 信息展示:用于展示一系列相关的图片或信息。

可能遇到的问题及解决方法

  1. 动画卡顿
    • 确保图片大小适中,避免过大导致加载缓慢。
    • 使用will-change属性优化动画性能:
    • 使用will-change属性优化动画性能:
  • 图片加载顺序问题
    • 使用preload属性预加载图片,确保图片在动画开始前已加载完毕:
    • 使用preload属性预加载图片,确保图片在动画开始前已加载完毕:

通过以上步骤,你可以实现一个简单且高效的图片循环滚动特效。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券