常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。
效果
使用方法
<template>
<div id="vueSwiper">
<lc-title title="滑动切换"></lc-title>
<category title="横向切换"></category>
<lc-swiper
:paginationVisibile="true"
direction="horizontal"
:swiperData="dataImgItem"
>
<div v-for="(item,index) in dataImgItem" :key="index" class="nut-swiper-slide ">
<img :src="item.imgSrc" style="width:100%; height:100%;"/>
</div>
</lc-swiper>
<category title="横向切换带指示器"></category>
<lc-swiper
:paginationVisibile="true"
direction="horizontal"
:swiperData="dataImgItem"
:canDragging="false"
:paginationVisible="true"
>
<div v-for="(item,index) in dataImgItem" :key="index" class="nut-swiper-slide ">
<img :src="item.imgSrc" style="width:100%; height:100%;" />
</div>
</lc-swiper>
<category title="横向循环切换"></category>
<lc-swiper
:paginationVisibile="true"
direction="horizontal"
:swiperData="dataImgItem"
:loop="true"
:canDragging="false"
:paginationVisible="true"
>
<div v-for="(item,index) in dataImgItem" :key="index" class="nut-swiper-slide ">
<img :src="item.imgSrc" style="width:100%; height:100%;" />
</div>
</lc-swiper>
<category title="纵向自动播放"></category>
<lc-swiper
direction="vertical"
:autoPlay="3000"
:swiperData="dataImgItem"
>
<div v-for="(item,index) in dataImgItem" :key="index" class="nut-swiper-slide ">
<img :src="item.imgSrc" style="width:100%; height:100%;" />
</div>
</lc-swiper>
<category title="滑动懒加载图片"></category>
<lc-swiper
direction="horizontal"
:paginationClickable="true"
:swiperData="dataImgItem"
:lazyLoad="true"
:paginationVisible="true"
@slideChangeEnd="slideChangeEnd"
@slideMove="slideMove"
@slideChangeStart="slideChangeStart"
>
<div v-for="(item,index) in dataImgItem" :key="index" class="nut-swiper-slide ">
<img :data-src="item.imgSrc" style="width:100%; height:100%;" class="nut-img-lazyload"/>
</div>
</lc-swiper>
</div>
</template>
<script>
import LcTitle from '_mods/title.vue';
import Category from '_mods/category.vue';
export default {
components: { LcTitle, Category },
data(){
return{
dataItem:[],
dataImgItem:[],
}
},
mounted(){
setTimeout(()=>{
this.dataItem = [{
name:1
},{
name:2
},{
name:3
},{
name:4
}]
this.dataImgItem = [
{
imgSrc:'images/banner1.jpg'
},
{
imgSrc:'images/banner2.jpg'
},
{
imgSrc:'images/banner3.jpg'
}
];
},300)
},
methods:{
slideChangeEnd(page){
console.log(page);
},
slideMove(page){
console.log(page);
},
slideChangeStart(page){
console.log(page);
}
}
}
</script>
<style lang="less">
#vueSwiper{
.nut-swiper-slide{
font-size:24px;
justify-content: center;
align-items: center;
display: flex;
}
}
</style>
可配置参数
字段 | 说明 | 类型 | 默认值 |
---|---|---|---|
direction | 滑动方向 | String | vertical |
paginationVisible | 是否分页显示 | Boolean | false |
paginationClickable | 分页是否可以点击 | Boolean | false |
loop | 是否循环 | Boolean | false |
speed | 过度动画执行时间 | Number | 500 |
canDragging | 是否无缝切换 | Boolean | true |
autoPlay | 自动轮播,轮播默认是循环模式,直接写轮播间隔时间 | Number | 0 |
initPage | 设置初始时候显示的页 | Number | 1 |
lazyLoad | 是否懒加载图片 | Boolean | false |
lazyLoadUrl | 懒加载的默认展示图片 | String | - |
swiperData | 异步数据渲染slide时,必须绑定对应数组 | Array | - |
方法
字段 | 说明 | 参数 |
---|---|---|
next | 去下一页 | - |
prev | 去上一页 | - |
setPage | 设置当前显示第几页 | number |
事件回调
字段 | 说明 | 回调参数 |
---|---|---|
slideChangeStart | 页面开始切换时候 | pageSize,el |
slideChangeEnd | 页面结束切换时候 | pageSize,el |
slideRevertStart | 拖动页面没改变回到原先位置开始时候 | pageSize,el |
slideRevertEnd | 拖动页面没有改变回到原先位置结束时候 | pageSize,el |
slideMove | 拖动过程中 | offset,eler=”onEnter” |
`