Swiper 走马灯

一、概述

定义

一组轮播海报的展示 banner 组件。

使用场景

  • 当有一组并列的内容

  • 内容过多时,可使用使其节省空间

  • 常用于一组 banner 或卡片轮播

交互说明

  • 高量显示的为当前展示的 banner 位

  • 鼠标 hover 对应的走马灯出现对应变化,点击视图切换

基础样式

Swiper 走马灯 - 图1

  1. <template>
  2. <se-swiper @change="slideChange" @animation-finish="animationfinish" autoplay>
  3. <se-swiper-item :item-id="item" v-for="item of list" :key="item">
  4. slider{{item}}
  5. </se-swiper-item>
  6. </se-swiper>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. list: [1, 2, 3]
  13. }
  14. },
  15. methods: {
  16. slideChange(current) {
  17. console.log(`slideChange触发,当前index${current}`)
  18. },
  19. animationfinish(current) {
  20. console.log(`animationfinish触发,当前index${current}`)
  21. }
  22. }
  23. }
  24. </script>
  25. <style>
  26. .se-swiper-item {
  27. height: 300px;
  28. color: #fff;
  29. font-size: 14px;
  30. line-height: 300px;
  31. text-align: center;
  32. background-color: #99a9bf;
  33. }
  34. </style>

方向

默认情况下,vertical 为 false。通过设置 vertical 为 true 来让 swiper 在垂直方向上显示。

Swiper 走马灯 - 图2

  1. <template>
  2. <se-swiper :vertical="vertical" :height="height" autoplay>
  3. <se-swiper-item v-for="item in 5" :key="item">
  4. slider{{item}}
  5. </se-swiper-item>
  6. </se-swiper>
  7. </template>
  8. <script>
  9. export default {
  10. data() {
  11. return {
  12. vertical: true,
  13. height: 300
  14. }
  15. }
  16. }
  17. </script>
  18. <style>
  19. .se-swiper-item {
  20. height: 300px;
  21. color: #fff;
  22. font-size: 14px;
  23. line-height: 300px;
  24. text-align: center;
  25. background-color: #99a9bf;
  26. }
  27. </style>

同时显示多个 slide

Swiper 走马灯 - 图3

<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>

初始化跳转到自定义页

Swiper 走马灯 - 图4

<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

属性类型默认值必填说明
heightnumber强制 Swiper 的高度(px),当 vertical 为 true 时需要强制使用
widthnumber强制 Swiper 的宽度(px)
indicator-dotsbooleantrue是否显示面板指示点
autoplaybooleanfalse是否自动切换
currentnumber0当前所在滑块的 index
intervalnumber3000自动切换时间间隔
durationnumber800滑动动画时长
circularbooleantrue是否循环显示
verticalbooleanfalse滑动方向是否为纵向
arrowalways/hover/neverhover切换箭头的显示时机
display-multiple-itemsnumber1设置 slider 容器能够同时显示的 slides 数量。可以设置为数字(可为小数,小数不可 loop),或者 'auto'则自动根据 slides 的宽度来设定数量。

Events

事件名称描述回调函数参数
change幻灯片切换时触发当前的 index
animation-finish过渡结束时触发当前的 index

Methods

参数描述参数
prev切换至上一张幻灯片
next切换至下一张幻灯片
slideTo切换到任意幻灯片