使用swiper.js建立巢狀的swiper
相信在專案中使用過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
});
相關文章
- swiper.js loop 小坑JSOOP
- 不到200行用Vue實現類似Swiper.js的輪播元件VueJS元件
- javafx和swing巢狀使用的方法Java巢狀
- iOS block巢狀block中weakify的使用iOSBloC巢狀
- Angular 裡使用巢狀 Form 的步驟Angular巢狀ORM
- ViewPager巢狀fragment簡單使用Viewpager巢狀Fragment
- Fragment巢狀FragmentViewPager 正常使用姿勢Fragment巢狀Viewpager
- ng-template和ng-container的巢狀使用AI巢狀
- Python的if語句多層巢狀怎麼使用Python巢狀
- html的巢狀規則HTML巢狀
- Vue中的巢狀路由Vue巢狀路由
- es中如何使用巢狀物件查詢巢狀物件
- 列表巢狀操作巢狀
- vue路由巢狀Vue路由巢狀
- Confluence 6 啟用巢狀使用者組巢狀
- golang的巢狀事務管理Golang巢狀
- JavaScript中if巢狀assert的方法JavaScript巢狀
- vue的元件巢狀關係Vue元件巢狀
- 008. vue元件的巢狀Vue元件巢狀
- SCSS 巢狀屬性CSS巢狀
- SCSS 巢狀規則CSS巢狀
- 展開巢狀列表巢狀
- Locust 任務巢狀巢狀
- Oracle 巢狀表(轉)Oracle巢狀
- 巢狀類遞迴巢狀遞迴
- vue(19)巢狀路由Vue巢狀路由
- 巢狀子查詢巢狀
- Blazor巢狀傳遞Blazor巢狀
- element-ui的----el-form表單校驗巢狀表單校驗(表單多層巢狀)+el-table和el-form巢狀使用表單校驗UIORM巢狀
- MySQL Join原理分析(緩衝塊巢狀與索引巢狀迴圈)MySql巢狀索引
- python使用引數對巢狀字典進行取值Python巢狀
- Linux的中斷可以巢狀嗎?Linux巢狀
- 減少該死的 if else 巢狀巢狀
- Revit獲取元素的巢狀族巢狀
- 關於 MySQL 的巢狀事務MySql巢狀
- JavaScript巢狀物件的全新方式JavaScript巢狀物件
- SAP HUM 巢狀HU的盤點巢狀
- Elasticsearch聚合的巢狀桶如何排序Elasticsearch巢狀排序