使用swiper.js创建嵌套的swiper

简介: 相信在项目中使用过swiper.js的同学会跟我一样,觉得这个软件真的很好用。首先API调用简单,其次就是他的官方文档写得非常之详细,非常容易上手。自己在项目中使用swiper.js很长时间了,这里根据自己的一些经验和心得对swiper.js进行总结。

相信在项目中使用过swiper.js的同学会跟我一样,觉得这个软件真的很好用。首先API调用简单,其次就是他的官方文档写得非常之详细,非常容易上手。
自己在项目中使用swiper.js很长时间了,这里根据自己的一些经验和心得对swiper.js进行总结。

swiper.js官网

官网地址:https://www.swiper.com.cn/
官网快捷链接:Swiper4使用方法Swiper4的API文档

嵌套两个或多个siwper

根据官方文档,我们创建一个swiper是非常简单的,但是如何创建两个swiper,这对于一些新手小白来说可能比较迷茫。这里先给出代码,然后再进行解释。

示例代码

  • 下载并引入swiper文件:
<link rel="stylesheet" href="swiper-4.3.3.min.css">
<script src="swiper-4.3.3.min.js"></script>
  • HTML代码:
<!-- 定义父swiper -->
<div class="swiper-container first-one">
    <div class="swiper-wrapper">
        <div class="swiper-slide">我是父亲swiper的第一个slide</div>
        <div class="swiper-slide">我是父亲swiper的第二个slide</div>
        <div class="swiper-slide">我是父亲swiper的第三个slide</div>
        <div class="swiper-slide">

            <!-- 定义嵌套的子swipe -->
            <div class="swiper-container second-one">
                <div class="swiper-wrapper">
                    <div class="swiper-slide">我是儿子swiper的第一个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第二个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第三个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第四个slide</div>
                </div>
            </div>

        </div>
    </div>
</div>
  • CSS代码:
*{
    padding: 0;
    margin: 0;
}
.swiper-container{
    width: 100vw;       /*100vw的意思是宽度和浏览器窗口的宽度一样*/
    height: 100vh;      /*100vh的意思是宽度和浏览器窗口的高度一样*/
}
  • JavaScript代码:
var first_swiper=new Swiper('.first-one',{
    // 这里可以不写任何东西,swiper会按照默认参数进行初始化
});

var second_swiper=new Swiper('.second-one',{
    // 这里可以不写任何东西,swiper会按照默认参数进行初始化
});

使用总结

  • 其实创建嵌套swiper很简单,就是在一个已经创建好的swiper中,确定我们在哪一个slide中创建我们的第二个swiper。然后就按照我们创建第一个swiper的样子来书写HTML代码。
  • HTMl代码书写好之后,我们就要使用JavaScript脚本来初始化我们的两个swiper。这个时候有的同学就会问,我如何来区分两个swiper呢?注意看我们的HTML代码中,我分别给两个swiper加了一个class="fitst-one"class="second-one"。这样我们就可以区分两个swiper,然后在JavaScript脚本中初始化swiper的时候,就是用这两个class分别来初始化两个swiper。
  • 这样,我们便可以成功创建两个嵌套的swiper。如果你要创建多个嵌套的swiper,也采用类似的方法,但是不建议嵌套过多的swiper,根据我的个人经验,可能会出现一些bug。

注意事项

  • 仔细观察上面给出的HTML代码,我们是将子swiper嵌套在父swiper的最后一个slide中,这样在初始化swiper的时候,不进行额外的配置,也不会有什么问题。
  • 但是如果我们将子swiper嵌套在父swiper的中间的slide中,这个时候我们只能看到子swiper的第一个slide。例如我们的HTML代码采用下面的写法:
<!-- 定义父swiper -->
<div class="swiper-container first-one">
    <div class="swiper-wrapper">
        <div class="swiper-slide">我是父亲swiper的第一个slide</div>
        <div class="swiper-slide">

            <!-- 定义嵌套的子swipe -->
            <div class="swiper-container second-one">
                <div class="swiper-wrapper">
                    <div class="swiper-slide">我是儿子swiper的第一个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第二个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第三个slide</div>
                    <div class="swiper-slide">我是儿子swiper的第四个slide</div>
                </div>
            </div>

        </div>
        <div class="swiper-slide">我是父亲swiper的第二个slide</div>
        <div class="swiper-slide">我是父亲swiper的第三个slide</div>
    </div>
</div>
  • 这个时候,我们在滑动slide的时候,分别会看到下面的文字:

    • 我是父亲swiper的第一个slide
    • 我是儿子swiper的第一个slide
    • 我是父亲swiper的第二个slide
    • 我是父亲swiper的第三个slide
  • 这个时候是我们的初始化的问题,如果想看到子swiper全部的slide,那么需要在初始化子swiper的时候,额外配置一些选项,即设置nested:true。用于嵌套相同方向的swiper时,当切换到子swiper时停止父swiper的切换。

var first_swiper=new Swiper('.first-one',{
    // 这里可以不写任何东西,swiper会按照默认参数进行初始化
});

var second_swiper=new Swiper('.second-one',{
    nested:true
});
相关文章
|
JavaScript 数据可视化 前端开发
【Vue.js】vue-cli搭建SPA项目并实现路由与嵌套路由---详细讲解
【Vue.js】vue-cli搭建SPA项目并实现路由与嵌套路由---详细讲解
123 0
|
5天前
|
JavaScript 前端开发 Java
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
柯里化是一种强大的函数式编程技术,它通过将函数分解为单参数形式,实现了灵活性与可复用性的统一。无论是参数复用、延迟执行,还是函数组合,柯里化都为现代编程提供了极大的便利。 从 Redux 的选择器优化到复杂的数据流处理,再到深度嵌套的函数优化,柯里化在实际开发中展现出了非凡的价值。如果你希望编写更简洁、更优雅的代码,柯里化无疑是一个值得深入学习和实践的工具。从简单的实现到复杂的应用,希望这篇博客能为你揭开柯里化的奥秘,助力你的开发之旅! 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一
|
2月前
|
设计模式 数据安全/隐私保护
Next.js 实战 (七):浅谈 Layout 布局的嵌套设计模式
这篇文章介绍了在Next.js框架下,如何处理中后台管理系统中特殊页面(如登录页)不包裹根布局(RootLayout)的问题。作者指出Next.js的设计理念是通过布局的嵌套来创建复杂的页面结构,这虽然保持了代码的整洁和可维护性,但对于特殊页面来说,却造成了不必要的布局包裹。文章提出了一个解决方案,即通过判断页面的skipGlobalLayout属性来决定是否包含RootLayout,从而实现特殊页面不包裹根布局的目标。
123 33
|
5月前
|
Web App开发 JavaScript 前端开发
Javascript嵌套函数的调用
Javascript嵌套函数的调用
|
10月前
|
JavaScript 索引
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
用原生js的postMessage实现iframe传值,也可以用于跨域嵌套iframe传值
|
8月前
|
JavaScript
js 校验括号——括号不可嵌套且需成对出现
js 校验括号——括号不可嵌套且需成对出现
80 2
|
10月前
|
JavaScript
【升级玩法】js用push、unshift、shift、pop或splice实现5张卡片(可以自由定义更多)轮播图效果banner、swiper
【升级玩法】js用push、unshift、shift、pop或splice实现5张卡片(可以自由定义更多)轮播图效果banner、swiper
|
JavaScript 前端开发 容器
js使用swiper实现轮播图
Swiper是一个流行的轮播图插件,它可以在移动端和PC端使用。以下是使用Swiper实现轮播图的基本步骤:
218 0
|
JavaScript
JS for 循环嵌套 for 循环(打印九九乘法表)
JS for 循环嵌套 for 循环(打印九九乘法表)
137 0
|
JavaScript
js 外部调用 嵌套函数
js 外部调用 嵌套函数
91 0

热门文章

最新文章