swiper slidesPerView: “auto“ 留下的坑

需求:是将一个模块改为轮播图,竖着轮播,比较麻烦的是每个子模块的大小不一样,有一些高一点,有一些没那么高。

问题:根据我这种情况,普通的slidesPerView 是解决不了的,因为正常设置这个属性会平均你的大小,然后平分给各个子模块,据文档描写,可以用 ’auto‘ 这个值,让其自适应各个子模块。问题来了,设置了 slidesPerView: "auto" 这个属性之后就无法正常滚动了。

解决方案:经过了不断的查看dom和浏览文档,发现是高度的问题,因为我的父元素的高度是800px,然后swiper自动将子模块平分为3份,但是子元素因为大小不一,所以并不会完全占满父元素的高度,导致swiper本身计算出现问题,导致无法正常滚动,然后调整父元素的高度即可解决这个问题

<div class="pt10 swiper" id="monitoring">
    <div class="swiper-wrapper">
        <div
          class="swiper-slide">
        </div>
    </div>
</div>


.swiper {
  height: 85%;  //比较适合我的高度(需自行调整至满足自身的高度,高度可小不可大)
}

      调整完高度即可正常滚动!

注:

        - 父元素高度可以小一点,但是不能大,大了会使轮播失效

结束...,回去继续头脑风暴了!~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是使用 Swiper5 初始化一个垂直方向的轮播图,其中包含了许多配置项,下面我来一一解析: ```javascript var mySwiper1 = new Swiper(".m-mzw-swiper-a4 .swiper1", { direction: "vertical", // 设置为垂直方向 loop: true, // 无限循环 slidesPerView: "auto", // 自动根据容器宽度计算每页显示的图片数量 centeredSlides: true, // 居中显示轮播图 freeMode: true, // 自由模式,允许滑动到任意位置 watchSlidesVisibility: true, // 开启此选项后,仅在当前slide对应的swiper-slide-visible元素上添加active类名 // mousewheel: true // 是否开启鼠标滚轮控制 }); ``` - `direction: "vertical"`:设置轮播图方向为垂直方向,即上下滚动。 - `loop: true`:开启轮播图无限循环,即从最后一张图片切换到第一张图片时,会自动继续切换到第二张图片。 - `slidesPerView: "auto"`:自动根据容器宽度计算每页显示的图片数量,即每个页面容纳的图片数量不固定。 - `centeredSlides: true`:居中显示轮播图,即当前显示的图片在居中位置。 - `freeMode: true`:自由模式,允许滑动到任意位置,而不是每次只能滑动到下一个或上一个图片。 - `watchSlidesVisibility: true`:开启此选项后,仅在当前 slide 对应的 `.swiper-slide-visible` 元素上添加 `active` 类名,可以用于控制样式。 - `mousewheel: true`:是否开启鼠标滚轮控制,这个选项被注释掉了,如果需要开启,可以取消注释。 除了这些常用的配置项之外,Swiper5 还有许多其他的配置项,可以根据实际需求进行配置。希望这些信息对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值