vue中轮播图一屏幕显示多张

1.结构

 <el-carousel arrow="always" :autoplay="false" indicator-position="none">
          <el-carousel-item v-for="(item, index) in dataList2" :key="index">
            <div class="imgl">
              <div class="imgdet" v-for="(item1, index1) in item" :key="index1" @click="huigu(item1.id)">
                <img :src="item1.cover" alt="" />
                <p class="text">{{ item1.title }}</p>
              </div>
            </div>
          </el-carousel-item>
        </el-carousel>

2.在不同屏幕显示不同的张数

 var Width = document.body.clientWidth
          console.log(Width)
          if (Width >= 1200) {
            this.dataList2 = this.formatArray(this.dataList1, 4)
          } else if (768 <= Width < 1200) {
            this.dataList2 = this.formatArray(this.dataList1, 2)
          }
          if (Width < 768) {
            console.log(Width)
            this.dataList2 = this.formatArray(this.dataList1, 1)
          }

3.函数

 formatArray(data, num) {
      var dataList2 = []
      for (var i = 0, len = data.length; i < len; i += num) {
        dataList2.push(data.slice(i, i + num))
      }
      return dataList2
    },
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
对于Vue来说,根据当前屏幕大小来设置Swiper轮播的图片数有多种实现方式。以下是一种可能的实现方法: 首先,需要在Vue组件引入Swiper库,并在`mounted`生命周期钩子初始化Swiper实例。 ```javascript import Swiper from 'swiper'; export default { mounted() { const swiper = new Swiper('.swiper-container', { // Swiper的配置选项 // ... }); }, // ... } ``` 接下来,可以在Vue组件使用计算属性来动态计算并设置Swiper轮播的图片数。 ```javascript export default { data() { return { screenSize: { width: 0, height: 0, }, images: ['image1.jpg', 'image2.jpg', 'image3.jpg', 'image4.jpg', 'image5.jpg'], }; }, mounted() { window.addEventListener('resize', this.updateScreenSize); this.updateScreenSize(); }, destroyed() { window.removeEventListener('resize', this.updateScreenSize); }, computed: { swiperParams() { const swiperSlidesPerPage = this.calculateSwiperSlidesPerPage(); return { // Swiper的其他配置选项 // ... slidesPerView: swiperSlidesPerPage, }; }, }, methods: { updateScreenSize() { this.screenSize.width = window.innerWidth; this.screenSize.height = window.innerHeight; }, calculateSwiperSlidesPerPage() { const screenWidth = this.screenSize.width; if (screenWidth < 768) { return 1; // 如果屏幕宽度小于768px,则每页显示一张图片 } else if (screenWidth < 992) { return 2; // 如果屏幕宽度介于768px和992px之间,则每页显示两张图片 } else { return 3; // 如果屏幕宽度大于等于992px,则每页显示三张图片 } }, }, // ... } ``` 这样,在Vue组件的模板可以通过Swiper指令绑定使用计算属性的值来动态设置Swiper轮播的图片数。 ```html <template> <div class="swiper-container" v-swiper="swiperParams"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="image in images" :key="image"> <img :src="image" alt=""> </div> </div> <!-- Swiper的其他内容 --> </div> </template> ``` 通过上述方法,Vue可以根据当前屏幕大小来实现动态设置Swiper轮播的图片数,以适应不同屏幕尺寸的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值