Timeline

时间轴,用于对一系列信息进行时间排序时垂直展示。两种用法择一:传 dataSource 数据驱动(支持 content 属性及 Timeline.Item 全部属性),或在 children 内写 <Timeline.Item> 声明式。通过 mode 设置时间轴与内容的相对位置:left(默认)/right/center/alternate。

设计文档

如何引入

import { Timeline, Timeline.Item } from '@chenzy-design/svelte';

基本用法

在 children 内写 <Timeline.Item>,通过 time 设置时间文本。

  • 第一个节点内容
    2019-07-14 10:35
  • 第二个节点内容
    2019-06-13 16:17
  • 第三个节点内容
    2019-05-14 18:34

节点类型

通过 type 设置节点类型,对应圆点变为相应颜色,可选:default / ongoing / success / warning / error。

  • 审核中
    2019-07-14 10:35
  • 发布成功
    2019-06-13 16:17
  • 审核失败
    2019-05-14 18:34

自定义节点

通过 dot 自定义图标、color 自定义圆点色值;通过设置 children 样式可自定义节点样式。

  • 默认样式的节点
    2019-07-14 10:35
  • 自定义图标
    2019-06-13 16:17
  • 自定义节点颜色
    2019-05-14 18:34
  • 自定义节点样式
    2019-04-10 12:20

时间轴在左侧(默认)

通过 mode="left" 时间轴与内容排在左侧(默认)。

  • 第一个节点内容
    节点辅助说明信息
    2019-07-14 10:35
  • 第二个节点内容
    节点辅助说明信息
    2019-06-13 16:17
  • 第三个节点内容
    节点辅助说明信息
    2019-05-14 18:34
  • 第四个节点内容
    节点辅助说明信息
    2019-05-09 09:12

时间节点居中

通过 mode="center" 时间轴居中、时间文本在轴另一侧。

  • 第一个节点内容
    节点辅助说明信息
    2019-07-14 10:35
  • 第二个节点内容
    节点辅助说明信息
    2019-06-13 16:17
  • 第三个节点内容
    节点辅助说明信息
    2019-05-14 18:34
  • 第四个节点内容
    节点辅助说明信息
    2019-05-09 09:12

交替展现

通过 mode="alternate" 节点内容左右交替排列。

  • 第一个节点内容
    节点辅助说明信息
    2019-07-14 10:35
  • 第二个节点内容
    节点辅助说明信息
    2019-06-13 16:17
  • 第三个节点内容
    节点辅助说明信息
    2019-05-14 18:34
  • 第四个节点内容
    节点辅助说明信息
    2019-05-09 09:12

时间轴在右侧

通过 mode="right" 时间轴与内容排在右侧。

  • 第一个节点内容
    节点辅助说明信息
    2019-07-14 10:35
  • 第二个节点内容
    节点辅助说明信息
    2019-06-13 16:17
  • 第三个节点内容
    节点辅助说明信息
    2019-05-14 18:34
  • 第四个节点内容
    节点辅助说明信息
    2019-05-09 09:12

使用 dataSource

传入 dataSource 数组数据驱动,支持 content 属性及 Timeline.Item 的所有属性;content/dot 可为字符串或 Snippet。

  • 第一个节点内容
    节点辅助说明信息
    2019-07-14 10:35
  • 第二个节点内容
    节点辅助说明信息
    2019-06-13 16:17
  • 第三个节点内容
    节点辅助说明信息
    2019-05-14 18:34
  • 第四个节点内容
    节点辅助说明信息
    2019-05-09 09:12

可点击节点

通过 Timeline.Item 的 onClick 监听节点点击(Semi 无此 demo,补全交互场景)。

最近点击:(未点击)
  • 创建服务现场
    2019-07-14 10:35
  • 初步排除网络异常
    2019-06-13 16:17
  • 技术测试异常
    2019-05-14 18:34

无障碍标签

通过 aria-label 为时间轴整体设置标签,圆点与连线均 aria-hidden(Semi 无此 demo,补全可访问性场景)。

  • 创建服务现场
    2015-09-01
  • 初步排除网络异常
    2015-09-02
  • 技术测试异常
    2015-09-03
  • 网络异常正在修复
    2015-09-05

API 参考

Timeline

Props

属性说明类型默认值
mode通过设置 mode 可以改变时间轴和内容的相对位置'left'|'right'|'center'|'alternate'left
class类名string-
style样式string-
dataSource时间轴数据源,支持 content 属性及 Timeline.Item 的所有属性TimelineItemData[]-
aria-label无障碍标签string-
children声明式用法:内嵌 <Timeline.Item> 列表(未传 dataSource 时生效)Snippet-

Timeline.Item

时间轴单项,渲染节点圆点 / 连线 / 内容

Props

属性说明类型默认值
class类名string-
color自定义的圆圈色值string-
dot自定义时间轴点string | Snippet-
extra自定义辅助内容string | Snippet-
position自定义节点位置,可以覆盖 Timeline 的模式选项'left'|'right'-
style样式string-
time时间文本string | Snippet-
type当前圆圈的模式'default'|'ongoing'|'success'|'warning'|'error'default
onClick鼠标点击事件的回调(e: MouseEvent) => void-
children节点内容Snippet-

Accessibility

ARIA rolelist
  • ul/li 结构
  • 时间点的连线以及时间点本身被设置了 aria-hidden,不会响应 Accessibility API
  • 可通过传入 aria-label 设置 Timeline 组件的标签

设计变量

变量默认值用法
--cd-motion-timeline-head-custom-transform translate(-50%, -50%)时间轴自定义图标节点位移(Semi $motion-timeline_head_custom-transform)