Framework7 comes with powerful and most modern touch slider ever - Swiper Slider with super flexible configuration and lot, lot of features.
Swiper Slider HTML Layout
Swiper HTML layout is pretty simple:
- <!--?Slider?container?-->
-
<div?class="swiper-container">
-
????<!--?Slides?wrapper?-->
-
????<div?class="swiper-wrapper">
-
????????<!--?Slides?-->
-
????????<div?class="swiper-slide">Slide?1</div>
-
????????<div?class="swiper-slide">Slide?2</div>
-
????????<div?class="swiper-slide">Slide?3</div>
- ????????...?other?slides?...
-
????</div>
-
????<!--?Pagination,?if?required?-->
-
????<div?class="swiper-pagination"></div>
- </div>
复制
Where:
Initialize Swiper with JavaScript
Now, when we have Swiper‘ HTML, we need to initialize it. We need to use related App‘s method:
myApp.swiper(swiperContainer, parameters) - initialize slider with options
- swiperContainer - HTMLElement or string (with CSS Selector) of swiper container HTML element. Required.
- parameters - object - object with Swiper parameters. Optional.
- Method returns initialized Swiper instance
OR
new Swiper(swiperContainer, parameters) - initialize slider with options
- swiperContainer - HTMLElement or string (with CSS Selector) of swiper container HTML element. Required.
- parameters - object - object with Swiper parameters. Optional.
- Method returns initialized Swiper instance
For example:
-
var?mySwiper?=?app.swiper(‘.swiper-container‘,?{
-
????speed:?400,
-
????spaceBetween:?100
- });
复制
Note that Swiper container should be in DOM on a moment of initialization. So if you use slider not on home page, you need to initialize it within pageInit event
Swiper API (Parameters, Methods And Properties)
Сheck out Swiper API Website for the most relevant API parameters and methods.
Initialize Swiper with HTML
If you don‘t need Swiper callback you can initialize swiper using HTML without JavaScript. You can do that just by adding additional "swiper-init" class to?swiper-container
- <!--?swiper-init?to?initialize?swiper?automatically?-->
-
<div?class="swiper-container?swiper-init">
-
????<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>
- ????????...?other?slides?...
-
????</div>
- </div>
复制
But what about Swiper parameters. In this case we need to pass them in?data-?attributes.
Parameters that used in camelCase, for example?slidesPerView, in data- attributes should be used as hypens-case as?data-slides-per-view
- <!--?swiper?properties?in?data-?attributes?-->
-
<div?class="swiper-container?swiper-init"?data-speed="400"?data-space-between="40"?data-pagination=".swiper-pagination">
-
????<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>
- ????????...?other?slides?...
-
????</div>
-
????<div?class="swiper-pagination"></div>
- </div>
复制
Or we can pass all Swiper parameters in?valid JSON format?in data-swiper attribute:
- <!--?swiper?properties?in?JSON?format?in?data-swiper?attribute?-->
-
<div?class="swiper-container?swiper-init"?data-swiper="{‘speed‘:‘400‘,?‘spaceBetween‘:‘40‘,?‘pagination‘:?‘.swiper-pagination‘}">
-
????<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>
- ????????...?other?slides?...
-
????</div>
-
????<div?class="swiper-pagination"></div>
- </div>
复制
Access to Swiper‘s Instance
If you initialize Swiper using HTML it is still possible to access to Swiper‘s instance. It is "swiper" property of slider‘s container HTML element:
-
var?mySwiper?=?$$(‘.swiper-container‘)[0].swiper;
- ?
- //?Now?you?can?use?all?slider?methods?like
-
mySwiper.slideNext();
复制