Skip to content
通用组件

滑杆Slider

原生 range 换肤:方形滑块、4px 轨道。等级、信赖这类在区间里拖的值。

Vue
实验import { AkSlider } from "@mooncellwiki/prts-design-vue"Storybook ↗源码 ↗

原生 <input type="range"> 换肤(同 Naive UI 的 n-slider):4px 轨道、16px 方形滑块(主色 + 表面色描边)。给等级、信赖这类在区间里拖、拖的时候就想看到结果的值;要精确输入用数字输入,两者常常并排。

基本 · 步长 · 禁用 ​

v-model 是数字,min / max / step 同原生。滑杆本身不显示数值,旁边放一个 .ak-num;format-value 给读屏念的文字(aria-valuetext,如「100%」)。禁用时半透明。

可访问性 ​

键盘与读屏都是原生的:← → ↑ ↓ 一步、PageUp / PageDown 大步、Home / End 到两端。键盘焦点是 2px 青色描边。旁边的「等级」文字不是 <label> 时写 label,或放在表单字段里。

CSS 没有刻度(Naive 的 marks)与拖动时的数值气泡,这里也不做;要刻度时在下面另排一行文字。

Vue API ​

属性类型默认说明
minnumber0最小值
maxnumber100最大值
stepnumber1步长
disabledbooleanfalse禁用
labelstring—可访问名(aria-label):不在 AkField 里、旁边也没有 <label> 时必填
formatValue((value: number) => string)—读屏念的值(aria-valuetext),如 v => `信赖 ${v}%`;不写就念数字
modelValuenumber—当前值
事件参数说明
update:modelValue[value: number | undefined]

CSS 实现 ​

html
<input class="ak-slider" type="range" min="1" max="90" value="90" aria-label="等级">
块元素 __修饰 --

文本 CC BY-NC-SA 4.0 · 游戏素材版权归鹰角网络所有