Swiper 走马灯
一、概述
定义
一组轮播海报的展示 banner 组件。
使用场景
当有一组并列的内容
内容过多时,可使用使其节省空间
常用于一组 banner 或卡片轮播
交互说明
高量显示的为当前展示的 banner 位
鼠标 hover 对应的走马灯出现对应变化,点击视图切换
基础样式
<template>
<se-swiper @change="slideChange" @animation-finish="animationfinish" autoplay>
<se-swiper-item :item-id="item" v-for="item of list" :key="item">
slider{{item}}
</se-swiper-item>
</se-swiper>
</template>
<script>
export default {
data() {
return {
list: [1, 2, 3]
}
},
methods: {
slideChange(current) {
console.log(`slideChange触发,当前index为${current}`)
},
animationfinish(current) {
console.log(`animationfinish触发,当前index为${current}`)
}
}
}
</script>
<style>
.se-swiper-item {
height: 300px;
color: #fff;
font-size: 14px;
line-height: 300px;
text-align: center;
background-color: #99a9bf;
}
</style>
方向
默认情况下,vertical 为 false。通过设置 vertical 为 true 来让 swiper 在垂直方向上显示。
<template>
<se-swiper :vertical="vertical" :height="height" autoplay>
<se-swiper-item v-for="item in 5" :key="item">
slider{{item}}
</se-swiper-item>
</se-swiper>
</template>
<script>
export default {
data() {
return {
vertical: true,
height: 300
}
}
}
</script>
<style>
.se-swiper-item {
height: 300px;
color: #fff;
font-size: 14px;
line-height: 300px;
text-align: center;
background-color: #99a9bf;
}
</style>
同时显示多个 slide
<template>
<se-swiper :displayMultipleItems="displayMultipleItems">
<se-swiper-item v-for="item in 5" :key="item">
slider{{item}}
</se-swiper-item>
</se-swiper>
</template>
<script>
export default {
data() {
return {
displayMultipleItems: 3
}
}
}
</script>
<style>
.se-swiper-item {
height: 300px;
color: #fff;
font-size: 14px;
line-height: 300px;
text-align: center;
background-color: #99a9bf;
}
.se-swiper__item:nth-child(even) {
opacity: 0.8;
}
</style>
初始化跳转到自定义页
<template>
<se-swiper :current="current">
<se-swiper-item v-for="item in 5" :key="item">
slider{{item}}
</se-swiper-item>
</se-swiper>
</template>
<script>
export default {
data() {
return {
current: 3
}
}
}
</script>
<style>
.se-swiper-item {
height: 300px;
color: #fff;
font-size: 14px;
line-height: 300px;
text-align: center;
background-color: #99a9bf;
}
</style>
Props
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
height | number | 否 | 强制 Swiper 的高度(px),当 vertical 为 true 时需要强制使用 | |
width | number | 否 | 强制 Swiper 的宽度(px) | |
indicator-dots | boolean | true | 否 | 是否显示面板指示点 |
autoplay | boolean | false | 否 | 是否自动切换 |
current | number | 0 | 否 | 当前所在滑块的 index |
interval | number | 3000 | 否 | 自动切换时间间隔 |
duration | number | 800 | 否 | 滑动动画时长 |
circular | boolean | true | 否 | 是否循环显示 |
vertical | boolean | false | 否 | 滑动方向是否为纵向 |
arrow | always/hover/never | hover | 否 | 切换箭头的显示时机 |
display-multiple-items | number | 1 | 否 | 设置 slider 容器能够同时显示的 slides 数量。可以设置为数字(可为小数,小数不可 loop),或者 'auto'则自动根据 slides 的宽度来设定数量。 |
Events
事件名称 | 描述 | 回调函数参数 |
---|---|---|
change | 幻灯片切换时触发 | 当前的 index |
animation-finish | 过渡结束时触发 | 当前的 index |
Methods
参数 | 描述 | 参数 |
---|---|---|
prev | 切换至上一张幻灯片 | |
next | 切换至下一张幻灯片 | |
slideTo | 切换到任意幻灯片 |