如何在一个页面用多个swiper插件

在编写移动web前端页面时,发现公司的原代码引用沉重杂乱,因此才找到了swiper这款强大的移动web前端js插件。下面就是在学习及使用过程中的碰到的问题和解决方法。。
百度搜索的答案也存在bug,下面是我更改完的攻略

html代码:

    <div class="swiper-container banner">
        <div class="swiper-wrapper">
            <div class="swiper-slide" ></div>
            <div class="swiper-slide" ></div>
            <div class="swiper-slide" ></div>
        </div>
        <div class="swiper-pagination banner"></div>
    </div>
    <div class="swiper-container case ">
        <div style="height:51px;"> </div>
        <div class="swiper-wrapper">
            <div class="swiper-slide" ></div>
            <div class="swiper-slide" ></div>
            <div class="swiper-slide" ></div>
        </div>
        <div class="swiper-pagination case"></div>
    </div>

js代码:

$(function(){
 var mySwiper = $('.banner').swiper({
    mode:'horizontal',
    loop: true,
    autoResize:true,
    pagination:'.banner .swiper-pagination',
    paginationClickable :true,
    autoplay : 3000,
 });

 var swiper = $('.case').swiper({
    pagination: '.case .swiper-pagination',
    slidesPerView: 4,
    slidesPerColumn: 2,
    paginationClickable: true,
    spaceBetween: 20
 });
})   

这就是两个不同的swiper插件在一个页面中的使用,重点在于

声明swiper变量时 加一个同级元素加以区别即

var mySwiper = $('.banner')

var swiper = $('.case')

然后就是更改pagination的默认值用以区别显示的页面控件

pagination:'.banner'

pagination: '.case',

这就是基本的修改方式,值得一提的是swiper在使用中不予bootstrap冲突

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
在 Vue 项目中使用多个 Swiper 插件可能会导致它们之间互相影响的问题,这是因为它们共享了一些全局变量和事件,导致冲突。为了避免这种情况,你可以使用 Swiper 的 `destroy()` 方法来销毁每个 Swiper 实例,然后再重新初始化。 在 Vue 中,你可以在组件的 `beforeDestroy()` 生命周期钩子中调用 `destroy()` 方法来销毁 Swiper 实例。这样可以确保在组件销毁之前,所有的 Swiper 实例都被正确地销毁了。同时,在组件的 `mounted()` 生命周期钩子中,你可以重新初始化 Swiper 实例。 以下是一个示例代码: ```vue <template> <div> <div ref="swiper1" class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> </div> <div ref="swiper2" class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide">Slide 1</div> <div class="swiper-slide">Slide 2</div> <div class="swiper-slide">Slide 3</div> </div> </div> </div> </template> <script> import Swiper from 'swiper'; export default { mounted() { // 初始化 Swiper 实例 this.initSwiper(); }, beforeDestroy() { // 销毁 Swiper 实例 this.destroySwiper(); }, methods: { initSwiper() { // 初始化 Swiper 实例 this.swiper1 = new Swiper(this.$refs.swiper1, {/* options */}); this.swiper2 = new Swiper(this.$refs.swiper2, {/* options */}); }, destroySwiper() { // 销毁 Swiper 实例 this.swiper1.destroy(); this.swiper2.destroy(); } } } </script> ``` 在这个示例中,我们在组件的 `mounted()` 生命周期钩子中初始化了两个 Swiper 实例,并在 `beforeDestroy()` 生命周期钩子中销毁了它们。这样可以确保在组件销毁之前,所有的 Swiper 实例都被正确地销毁了。在实际使用中,你可以根据需要添加更多的 Swiper 实例,并在相应的生命周期钩子中进行初始化和销毁。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐大帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值