swiper轮播图自定义slide宽度太长显示不完全,太短显示空白问题

在使用Swiper轮播图插件时遇到问题,通过设置`slidesPerView`属性为3导致无法直接修改slide宽度。解决方法是将`slidesPerView`设为'auto',并配合CSS样式实现自定义宽度。
摘要由CSDN通过智能技术生成

写了那么多次轮播图,每次出错都不长记性,既然如此好记性不如烂笔头,把错误以及错误出现的原因和解决方法梳理记下来,加深一下记忆。

问题表现

从swiper官网上复制黏贴下来了一个free模式的轮播图
js代码如下

 var swiper = new Swiper('.swiper-container', {
      slidesPerView: 3,
      spaceBetween: 30,
      freeMode: true,
      pagination: {
        el: '.swiper-pagination',
        clickable: true,
      },
    });

我想要自定义slide的宽度,但是直接写在style标签内无效,查看审查元素似乎是swiper插件自动给我设置的,心里隐隐约约觉得哪里不太对劲,以前用好像没有给我设置过…但是不管了,一个important关键字强制搞定

.swiper-slide {
  width: 2.78rem !important;
}

再看页面slide的宽度是对了,但是往右滑到头发现有一部分怎么都滑不出来…再把宽度设小一点,又发现滑到右边出现了一块空白…

问题原因

后来和之前的代码对比才发现,在初始化swiper的时候多了一个slidesPerView属性

这个属性用于设置slides容器同时能够显示的slide的数量,如果将其属性值设为3,在100%宽度的情况下,插件会自动设置slide的宽度为30%,而容器的宽度也会因此计算好定死,强制改变slide的宽度就会出现显示不出或留白的现象

解决方法

如果需要自定义每个slide的宽度,可以将slidesPerView的属性值设为 ‘auto’,再配合css样式即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值