vue实现图片无限滚动播放

本人vue新手菜鸡,文章为自己在项目中遇到问题的记录,如有不足还请大佬指正

文章目录


因为刚接触vue,本想着看看能不能用一些element的组件实现图片的轮播效果,尝试使用过element-UI里的走马灯Carouse,但是达不到想要的效果,最后发现还是原始的html+css样式实现才是最🐂的!

实现效果

真实效果能够实现图片的无缝无限轮转

代码展示

这里进行了图片轮播的两次操作(即代码中的'复制'),如果只有一次的话无法实现"无限"这个效果,列表播完就会有一段空白的部分。(可能是我太菜了TAT)

c 复制代码
<temple>
          <el-card style="width: 100%">
            <div class="index-section-info info6">
              <h3 class="index-title">动态图片</h3>
            </div>
            <div class="gundongBox">
              <div class="gundong">
                <div class="topgun">
                  <div class="scroll-container">
                    <!-- 初始图片 -->
                    <div class="smallbox" v-for="(item, index) in images" :key="index">
                      <img :src="item.url" class="slide-image" />
                    </div>
                    <!-- 复制图片以实现无限滚动 -->
                    <div class="smallbox" v-for="(item, index) in images" :key="index">
                      <img :src="item.url" class="slide-image" />
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </el-card>
</temple>
c 复制代码
<script>
const images = [
  { url: 'http://localhost:8100/src/assets/main/picture/newPic.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic2.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic3.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic4.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic5.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic6.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic7.gif' },
  { url: 'http://localhost:8100/src/assets/main/picture/newPic8.gif' },
]
</script>
c 复制代码
<style lang="scss" scoped>
.gundongBox {
  margin-top: 10px;
  .gundong {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    .topgun {
      height: 110px;
      display: flex;
      overflow: hidden;
      .scroll-container {
        display: flex;
        animation: slide 10s linear infinite;
        .smallbox {
          width: 25%;
          display: flex;
          img.slide-image {
            display: flex;
          }
        }
      }
    }
    .scroll-container:hover {
      cursor: pointer;
      animation-play-state: 'paused';
    }
  }
  @keyframes slide {
    0% {
      transform: translateX(0%);
    }
    100% {
      transform: translateX(-50%); // 滚动一个小框的宽度
    }
  }
  @keyframes moves {
    0% {
      transform: translateX(-50%);
    }
    100% {
      transform: translateX(0%); // 滚动一个小框的宽度
    }
  }
}
</style>

总结

暂时没有找到什么更好方法(不用.js的),只能用css的方法显示,如果大佬有什么更好更便捷的实现方式,欢迎讨论指出

相关推荐
德育处主任39 分钟前
『NAS』一句话生成网页,在NAS部署UPage
前端·javascript·aigc
前端老兵AI40 分钟前
前端工程化实战:Vite + ESLint + Prettier + Husky 从零配置(2026最新版)
前端·vite
bluceli41 分钟前
浏览器渲染原理与性能优化实战指南
前端·性能优化
张元清42 分钟前
Astro 6.0:被 Cloudflare 收购两个月后,这个"静态框架"要重新定义全栈了
前端·javascript·面试
凉拌西红柿44 分钟前
如何用工具定位性能瓶颈
前端
青青家的小灰灰1 小时前
深入理解 async/await:现代异步编程的终极解决方案
前端·javascript·面试
阿懂在掘金1 小时前
早点下班(Vue2.7版):旧项目也能少写 40%+ 异步代码
前端·vue.js·开源
Mintopia1 小时前
Web性能测试流程全解析:从概念到落地的完整指南
前端·性能优化·测试
Qinana1 小时前
第一次用向量数据库!手搓《天龙八部》RAG助手,让AI真正“懂”你
前端·数据库·后端
忆江南1 小时前
# Flutter Engine、Dart VM、Runner、iOS 进程与线程 —— 深度解析
前端