解决一个页面多个 swiper 冲突

本文介绍如何处理一个页面上存在多个Swiper组件导致的冲突问题。通过为每个Swiper创建独立的实例,并使用不同的class或id进行区分,确保它们能够正常工作而不会相互干扰。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你在当前页面使用了多个swiper组件时,则会出现冲突,这个没什么可说的,直接上代码言简意赅

这是第一个Swiper

//这是第一个Swiper
<div id={style.banner} className="swiper-container swiper1">
    <div className="swiper-wrapper">
        {
            this.props.homeBannerList.map((v, i) => (
                <div key={i} className="swiper-slide">
                    <img src={v.image_url} alt="" title={v.title} />
                </div>
            ))
        }
    </div>
    <div className="swiper-pagination" id={'swiper1'}></div>
</div>

这是第二个Swiper

//这是第二个Swiper
<div id={style.swiper_container} className="swiper-container swiper2">
    <div className="swiper-wrapper">
        {
            this.props.vipHomeSchedular.map((v) => (
                <div key={v.schedular_id} className="swiper-slide">
                    <div className={style.swiper_list}>
                        <div className={style.swiper_list_item}>
                            <a href="">
                                <img src={v.pic} alt="" />
                            </a>
                        </div>
                        <div className={style.swiper_list_info}>
                            <a href="">
                                <h3>{v.schedular_name}</h3>
                                <p>
                                    <span>{v.min_discount}</span>
                                    <span>折起</span>
                                </p>
                            </a>
                        </div>
                        <a href="">
                            <span className={style.swiper_list_buy}>立即抢购</span>
                        </a>
                    </div>
                </div>
            ))
        }
    </div>
    <div className="swiper-pagination" id={'swiper2'}></div>
</div>

这是第三个Swiper

//这是第三个Swiper
<div className="swiper-container swiper3">
   <div className="swiper-wrapper">
        {
            this.props.hostShowList.map((v, i) => (
                <div key={i} className="swiper-slide" id={style.swiper_slide_active}>
                    <a href="">
                        <div className={style.hot_list_item}>
                            <img src={v.pic} alt="" />
                        </div>
                        <h3>{v.show_name}</h3>
                    </a>
                </div>
            ))
        }
    </div>
</div>

这是第四个Swiper

//这是第四个Swiper
<div className="swiper-container swiper4">
    <div className="swiper-wrapper">
        {
            this.props.postponeShowList.slice(1).map((v) => (
                <div key={v.sche_id} className="swiper-slide" id={style.stage_list_swiper_active}>
                    <a href="">
                        <div className={style.stage_list_swiper_pic}>
                            <img src={v.pic} alt="" />
                        </div>
                        <h3>{v.schedular_name}</h3>
                        <p>
                            <strong>¥{v.low_price}</strong>
                            <span></span>
                        </p>
                    </a>
                </div>
            ))
        }
    </div>
</div>

Swiper实例

//第一个Swiper的实例
new Swiper('.swiper1', {
    autoplay: true,
    direction: 'horizontal',//竖向轮播
    loop: true,//无缝轮播
    pagination: {//小圆点分页
        el: '#swiper1',
    }
})
//第二个Swiper的实例
new Swiper('.swiper2', {
    autoplay: true,
    direction: 'horizontal',//竖向轮播
    loop: true,//无缝轮播
    pagination: {//小圆点分页
        el: '#swiper2',
    }
})
//第三个Swiper的实例
new Swiper('.swiper3', {
    slidesPerView: 3,
    spaceBetween: 0
})
//第四个Swiper的实例
new Swiper('.swiper4', {
 slidesPerView: 3,
    spaceBetween: 0
})

很简单,就是一个Swiper对应一个实例,通过自定义class/id名来进行绑定,这样就会使它们各玩各的,互不影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值