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的方法显示,如果大佬有什么更好更便捷的实现方式,欢迎讨论指出

相关推荐
Csvn1 小时前
`??` 和 `||` 搞混,线上用户头像全挂了
前端
kyriewen1 小时前
白宫前脚下了限制令,OpenAI 后脚就把 GPT-5.6 发了
前端·gpt·openai
用户40269244819082 小时前
CRMEB Pro 新增后台接口全链路:路由、权限、验证器、返回格式一次讲清
前端·后端
泉城老铁2 小时前
springboot+vue+ ffmpeg 实现视频的拉流播放
前端
PedroQue993 小时前
uni-router v1.8.0新增冷启动守卫补执行
前端·uni-app
xiaok3 小时前
部署之后,本地浏览器还在读取旧缓存导致页面一直显示loading中
前端
用户059540174463 小时前
Redis缓存一致性踩坑实录:线上故障排查6小时,我用pytest+内存快照把它永久关进了笼子
前端·css
星栈3 小时前
我用 Rust + Dioxus 做了个全栈跨平台笔记应用:第一版先把列表和详情跑通
前端·rust·前端框架
用户1733598075373 小时前
Vue 3 SPA 首屏优化:从 3s 到 1.2s 的 5 个实践
前端·vue.js
咖啡无伴侣3 小时前
基础骨架:30 分钟搭好 pnpm workspace,完成双项目 Monorepo 迁入
前端