进度条播放器
大约 177 分钟
基础示例
基础进度条播放,根据设定时间平滑改变进度条宽度实现进度播放
显示进度百分比
有时我们想要将当前百分比显示在进度条上,可以通过progressTextPosition属性设置:
颜色分割
根据数据中的单个字段(数值)设定区间分割进度条的颜色,支持分别以两种颜色绘制填充色和背景预览色
分割颜色 & 实时提示框 beta
分割颜色与实时提示框,在进度条上添加一个提示框,
由于提示框内容数据改变时,会导致提示框宽度发生变化 => 提示框的定位会偏移,目前不太完善,后续优化。
高性能模式
由于分割颜色进度条在改变进度时会导致浏览器重绘,故增加了高性能模式的方法,但这种方式 牺牲
了背景预览色可以自定义的功能,使用 遮罩
替代了 背景预览色
API
Props
属性名 | 必填 | 说明 | 类型 | 默认值 |
---|---|---|---|---|
data | 是 | 数据 | any[] | [] |
duration | 否 | 动画移动到下个点的过渡时间 | number | 1000 |
performance | 否 | 开启高性能模式 | boolean | false |
has-real-time-tip-box | 否 | 是否显示实时提示框 | boolean | false |
progress-bac-color | 否 | 未开启颜色分割时进度条背景色 | string | "#ccc" |
progress-fill-color | 否 | 未开启颜色分割时进度条填充色 | string | "#409eff" |
is-split | 否 | 是否开启颜色分割进度条 | boolean | false |
split-config | 否 | 分割配置,见下表 | SplitConfig | —— |
split-fields-interval | 否 | 分割字段区间范围eg: "[0,10)" => 10 < a >= 0 | string | "" |
progressTextPosition | 否 | 进度百分比文字 | null | ProgressTextPosition |
Events
事件名 | 描述说明 | 类型 |
---|---|---|
handle-play | 动画播放时根据设置的过渡时间定时返回当前点的索引和数据 | Function |
skip-progress | 返回鼠标点击进度条时当前点的索引和数据 | Function |
Slots
插槽名 | 说明 | 插槽道具 |
---|---|---|
controlBtn | 控制按钮(播放、暂停、重播) | play :播放按钮显示状态, pause :暂停按钮显示状态refresh :重播按钮显示状态 |
currentTip | 实时提示框内容 | —— |
Exposes
方法名 | 描述 | 类型 |
---|---|---|
initProgressBar | 初始化进度条 | Function |
play | 播放 | Function |
pause | 暂停 | Function |
refresh | 重播 | Function |
Methods
方法名 | 描述 | 类型 |
---|---|---|
splitFunMethods | 按照设定颜色计算切割区间结果 | Function: (data: any,interval: string,field: string,inRangeColor: string,outRangeColor: string) => void |
Types
SplitConfig
属性名 | 说明 | 类型 | 默认值 |
---|---|---|---|
splitFields | 用于分割颜色的属性 | string | —— |
inRangeColor | 处于设置区间内的进度条填充颜色 | string | "blue" |
outRangeColor | 不在设置区间内的进度条填充颜色 | string | "red" |
outRangeBacColor | 不在设置区间内的进度条背景颜色 | string | "rgba(255,0,0,0.3)" |
inRangeBacColor | 处于设置区间内的进度条背景颜色 | string | "rgba(0,0,255,0.3)" |
ProgressTextPosition
属性名 | 说明 | 类型 |
---|---|---|
null | 不显示进度百分比文字 | string |
follow | 跟随在当前进度左侧 | string |
inside-left | 固定在进度条内部的最左侧 | string |
inside-right | 固定在进度条内部的最右侧 | string |
outside-right | 固定在进度条外部的右侧 | string |