Pagination

分页器,用于切换大量数据的页码。严格对齐 Semi Design:default(完整页码 + 省略号折叠,7 格上限)与 small(current/total 紧凑视图,可 hoverShowPageSelect 悬停弹全部页码切页)两类布局。showTotal 显示总页数;省略号 hover 弹出隐藏页码。越界的当前页/每页条数与快速跳页输入均会被钳制到有效范围(纯函数实现,受控 prop 仅经回调上报)。

设计文档

如何引入

import { Pagination } from '@chenzy-design/svelte';

基本

通过 total 设置总条数、pageSize 设置每页容量。

禁用

通过 disabled 禁用整个分页器。

总页数显示

通过 showTotal 显示总页数文案。

指定当前页码

通过 defaultCurrentPage 指定初始激活的页码(非受控)。

每页容量切换

开启 showSizeChanger,通过 Select 快速切换每页容量。

快速跳转

开启 showQuickJumper,输入页码回车快速跳转;越界自动跳末页。

页码受控

传入 currentPage 后为受控组件,当前页完全取决于 currentPage。

当前第 3 页

预设每页容量可选值

通过 pageSizeOpts 指定切换每页容量的可选值。

迷你版本

size='small' 为紧凑视图(current/total)。

hover 快速切换

迷你版本开启 hoverShowPageSelect,可 hover 页码弹出全部页码快速切换(v1.27)。

API 参考

Pagination

Props

属性说明类型默认值
total数据总条数(对齐 Semi)number1
showTotal是否显示总页数文案(对齐 Semi)booleanfalse
pageSize每页条数;缺省取 pageSizeOpts[0](对齐 Semi,默认 null)numberundefined
pageSizeOptssize changer 可选每页条数(对齐 Semi)number[][10,20,40,100]
sizesmall 为紧凑视图(current/total)(对齐 Semi)'small'|'default'default
currentPage受控当前页(越界自动钳制显示,不回写;对齐 Semi)numberundefined
defaultCurrentPage默认当前页(非受控;对齐 Semi)number1
onPageChange仅页码变化回调(对齐 Semi)(currentPage: number) => voidundefined
onPageSizeChange每页容量变化回调(对齐 Semi)(newPageSize: number) => voidundefined
onChange页码或每页容量变化回调(对齐 Semi)(currentPage: number, pageSize: number) => voidundefined
prevText上一页内容;缺省显示 ‹(对齐 Semi prevText)string | Snippetundefined
nextText下一页内容;缺省显示 ›(对齐 Semi nextText)string | Snippetundefined
showSizeChanger显示每页条数选择器;size=small 时不生效(对齐 Semi)booleanfalse
showQuickJumper显示快速跳页输入(越界静默钳制,非数字忽略;对齐 Semi)booleanfalse
popoverZIndex浮层 z-index(对齐 Semi),透传 Select/Popovernumber1030
popoverPositionsize changer / 省略号 / hover 浮层方位(对齐 Semi,透传 Select/Popover)PopoverPosition'bottomLeft'
style透传根元素内联样式(对齐 Semi style)stringundefined
class透传根元素类名(对齐 Semi className)stringundefined
hideOnSinglePage仅一页时隐藏整个分页器;showSizeChanger 为 true 时此开关失效(对齐 Semi)booleanfalse
hoverShowPageSelectsize=small 时 hover 页码弹出全部页码快速切换(对齐 Semi,v1.27)booleanfalse
disabled禁用(对齐 Semi)booleanfalse
preventPageChangeOnPageSizeChange切换 pageSize 时阻止自动调整 currentPage(对齐 Semi)booleanfalse

Accessibility

ARIA rolenavigation
键盘交互TabEnterSpaceArrowLeftArrowRightHomeEnd
  • nav[aria-label] 包裹;页码列表 ul/li,页码为 li 内 <button>,当前页 aria-current=page
  • 页码组 roving tabindex:仅当前/聚焦页 tabindex=0,方向键漫游移动焦点不切页,Enter/Space 切页
  • 上一页/下一页在边界原生 disabled 且移出 Tab 序列
  • 省略号可 hover 弹出隐藏页码(disabled 时降级为 aria-hidden 静态 …)

设计变量

变量默认值用法
--cd-color-pagination-item-bg-active var(--cd-color-fill-1)翻页器 页码 按下态背景颜色
--cd-color-pagination-item-bg-default transparent翻页器 页码 背景颜色
--cd-color-pagination-item-bg-disabled transparent翻页器 页码 禁用态背景颜色
--cd-color-pagination-item-bg-hover var(--cd-color-fill-0)翻页器 页码 悬浮态背景颜色
--cd-color-pagination-item-bg-selected var(--cd-color-primary-light-default)翻页器 页码 选中态背景颜色
--cd-color-pagination-item-bg-selected-disabled var(--cd-color-disabled-fill)翻页器 页码 选中禁用态背景颜色
--cd-color-pagination-item-border-active transparent翻页器 页码 激活边框颜色
--cd-color-pagination-item-border-default transparent翻页器 页码 默认边框颜色
--cd-color-pagination-item-border-disabled transparent翻页器 页码 禁用边框颜色
--cd-color-pagination-item-border-hover transparent翻页器 页码 悬浮边框颜色