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

相关推荐
codeGoogle8 小时前
自研 IM 还是选择第三方 SDK?企业开发者应该如何权衡?
前端·后端·程序员
用户938515635079 小时前
React Context 与自定义 Hook 从底层到实践:「跨层级通信 + 副作用封装」全解析
前端·javascript·react.js
滴滴答答哒10 小时前
VUE3+element-plus MultiSelect 多选下拉组件
前端·javascript·vue.js
其美杰布-富贵-李10 小时前
04 watch 与 Vue 响应式数据流
前端·javascript·vue.js
赵大仁11 小时前
生成式 UI 实战:用 JSON Schema + React 动态渲染 AI 界面
前端·ai·react·next.js·前端架构·生成式ui
kyriewen12 小时前
我排查了一个React内存泄漏——罪魁祸首是这3个被忽略的清理函数
前端·javascript·面试
IT_陈寒13 小时前
我又被JavaScript的隐式类型转换坑了
前端·人工智能·后端
猿长大人13 小时前
C# | JSON 序列化中的多态接口处理:基于 Attribute 实现精准 $type 控制
c#·json
其美杰布-富贵-李13 小时前
03 ref、reactive 与 computed 响应式数据
前端·javascript·vue.js
OpenTiny社区13 小时前
GenUI SDK v1.3.0 发布|多框架兼容,一键换物料,渲染器 & 演练场全面增强!
前端·ai编程