Skip to content

分页器

用于指示当前显示的是第几张幻灯片,并允许用户通过点击这些点来快速跳转到特定的幻灯片。

引入

WARNING

v3版本不再默认引入所有modules,这意味着在使用modules中的模块时,都需要手动引入。

同时部分modulescss也需手动引入。需要注意的是,将style设置为scoped会导致样式失效。推荐全局引入所需要的模块样式。参考:引入样式

具体可查看模块化按需引入

vue
<script lang="ts" setup>
import { Pagination } from '@zebra-ui/swiper/modules'

const modules = ref([Pagination])
</script>
vue
<script lang="ts" setup>
import { Pagination } from '@/uni_modules/zebra-swiper/modules'

const modules = ref([Pagination])
</script>
css
<style lang="scss">
    @use "@zebra-ui/swiper/modules/pagination/pagination.scss";
</style>
css
<style lang="scss">
    @use "@/uni_modules/zebra-swiper/modules/pagination/pagination.scss";
</style>

配置

pagination

设置为 true 开启切换器。

类型
Boolean, Object
默认值
false

enabled

是否启用分页器。

类型
boolean
默认值
false
html
<z-swiper grabCursor :pagination="{enabled:true}" :modules="modules">
  <z-swiper-item v-for="item in list" :key="item.id">
    <DemoItem :text="item.text"></DemoItem>
  </z-swiper-item>
</z-swiper>

type

设置分页器的类型。

类型
string
默认值
bullets
可选项
bullets
fraction
progressbar
custom
  • bullets
  • fraction
  • progressbar

dynamicBullets

动态分页器,在大数据量的场景很有用。只会显示少量的分页器。

类型
boolean
默认值
false

dynamicMainBullets

动态分页器显示主指示点数量.

TIP

需要搭配dynamicBullets配置使用。

类型
number
默认值
1

progressbarOpposite

使分页进度条与 Swiper 的方向参数相反。

即垂直进度条对应水平 swiper 方向,水平进度条对应垂直 swiper 方向

类型
boolean
默认值
false

hideOnClick

点击swiper是否隐藏分页器

类型
boolean
默认值
false

clickable

点击指示点是否跳转至对应item

类型
boolean
默认值
false

formatFractionCurrent

格式化 fraction 类型的当前下标。

类型
function
默认值
-

formatFractionTotal

格式化 fraction 类型的总数量。

类型
function
默认值
-

方法

destroy

销毁分页器

vue
<DemoOprate
  type="primary"
  @click="() => swiperInstance['destroy'].pagination.destroy()"
>销毁分页器</DemoOprate>

init

初始化分页器

vue
<DemoOprate
  type="primary"
  @click="() => swiperInstance['init'].pagination.init()"
>初始化分页器</DemoOprate>

update

更新分页器

vue
<DemoOprate
  type="primary"
  @click="() => swiperInstance['update'].pagination.update()"
>更新分页器</DemoOprate>

事件

分页器显示时触发

html
<z-swiper @paginationShow="onSwiperPaginationShow">
  <z-swiper-item v-for="item in list" :key="item.id">
    <DemoItem :text="item.text"></DemoItem>
  </z-swiper-item>
</z-swiper>
vue
<script setup>
const onSwiperPaginationShow = (swiper) => {
  console.log('swiper实例:', swiper)
}
</script>

paginationHide

分页器隐藏时触发

html
<z-swiper @paginationHide="onSwiperPaginationHide">
  <z-swiper-item v-for="item in list" :key="item.id">
    <DemoItem :text="item.text"></DemoItem>
  </z-swiper-item>
</z-swiper>
vue
<script setup>
const onSwiperPaginationHide = (swiper) => {
  console.log('swiper实例:', swiper)
}
</script>

paginationUpdate

分页器更新时触发

html
<z-swiper @paginationUpdate="onSwiperPaginationUpdate">
  <z-swiper-item v-for="item in list" :key="item.id">
    <DemoItem :text="item.text"></DemoItem>
  </z-swiper-item>
</z-swiper>
vue
<script setup>
const onSwiperPaginationUpdate = (swiper) => {
  console.log('swiper实例:', swiper)
}
</script>

插槽

名称描述
pagination自定义分页器

TIP

使用插槽时,请将类型设置为custom

样式变量

组件提供了下列 CSS 变量,可用于自定义样式。

名称默认值描述
--swiper-pagination-color#2549e8分页器的颜色
--swiper-pagination-leftauto分页器距左侧的距离
--swiper-pagination-right8px分页器距右侧的距离
--swiper-pagination-bottom8px分页器距底部的距离
--swiper-pagination-topauto分页器距顶部的距离
--swiper-pagination-fraction-colorinherit分数式分页器的颜色
--swiper-pagination-progressbar-bg-colorrgba(0, 0, 0, 0.25)进度条分页器的背景色
--swiper-pagination-progressbar-size4px进度条分页器的尺寸
--swiper-pagination-bullet-size8px分页器圆点的尺寸
--swiper-pagination-bullet-width8px分页器圆点的宽度
--swiper-pagination-bullet-height8px分页器圆点的高度
--swiper-pagination-bullet-inactive-color#000非活动分页器圆点的颜色
--swiper-pagination-bullet-inactive-opacity0.2非活动分页器圆点的透明度
--swiper-pagination-bullet-opacity1活动分页器圆点的透明度
--swiper-pagination-bullet-horizontal-gap4px水平分页器圆点之间的间距
--swiper-pagination-bullet-vertical-gap6px垂直分页器圆点之间的间距

Released under the MIT License.