UNPKG

@aplus-frontend/ui

Version:

70 lines (69 loc) 1.6 kB
import { CSSProperties } from 'vue'; export type ScrollBarDirection = 'vertical' | 'horizontal'; export type ColorType = CSSProperties['background-color']; export interface InternalScrollBarProps { /** * 滚动条的方向 */ direction?: ScrollBarDirection; /** * 滚动条当前的位置(百分比值) */ scroll?: number; /** * 滚动条的长(高)度 */ barLength?: number; /** * 滚动条的高(宽)度 */ width?: number; /** * 滚动条的颜色 */ barColor?: ColorType; /** * 滑轨的颜色 */ trackColor?: ColorType; /** * 滑动滚条的长度 */ trackWidth?: number; /** * 是否禁用 */ disabled?: boolean; /** * 是否显示滑轨 */ showTrack?: boolean; /** * 点击滑轨滚动的速度 */ trackSpeed?: number; onScrollStart?: (percent: number) => void; onScroll?: (percent: number) => void; onScrollEnd?: (percent: number) => void; } export interface ScrollBarProps extends InternalScrollBarProps { /** * 可滚动容器 */ scrollContainer?: HTMLElement; /** * 额外的尺寸(宽/高) */ extraSize?: number; } export interface InternalScrollBarExpose { currentScroll: number; container: HTMLElement; track: HTMLElement; bar: HTMLElement; scroll: (percent: number) => void; } export type ScrollBarExpose = Pick<InternalScrollBarExpose, 'scroll' | 'currentScroll'> & { visible: boolean; rootElement: HTMLElement; };