Skip to content

滑块

属性 ​

属性类型默认值说明
v-modelnumber | [number, number]—必需。单值或区间值。
labelstring—必需。滑块名称。
idstring—关联 ID 的前缀。省略时自动生成。
minnumber0最小值。
maxnumber100最大值。
stepnumber1每步的增量。必须大于 0。
minStepsBetweenThumbsnumber0区间两个滑块之间的最小步数。
orientation'horizontal' | 'vertical'horizontal滑动方向。
valueDisplay'tooltip' | 'text' | 'none'tooltip数值的显示方式。
formatValue(value: number) => string—格式化显示值和无障碍数值文本。
marksSliderMark[]—刻度列表。每项包含 value 和可选的 label。
descriptionstring—标签下方的说明。
isLabelHiddenbooleanfalse隐藏视觉标签。保留无障碍名称。
isDisabledbooleanfalse阻止修改。不提交表单值。
disabledMessagestring—禁用原因。提供原因时,禁用滑块仍可聚焦。
isRequiredbooleanfalse显示必填提示。不会执行原生必填校验。
isOptionalbooleanfalse显示可选提示。优先于 isRequired。
requiredLabelstringRequired必填提示文本。
optionalLabelstringOptional可选提示文本。
minLabelstringMinimum value区间下限的无障碍名称。
maxLabelstringMaximum value区间上限的无障碍名称。
widthnumber | string—整个字段的宽度。数字按 px 处理。
htmlNamestring—隐藏表单字段的名称。
formstring—关联表单的 ID。
statusFieldStatusInput—字段的错误、警告或成功状态。
labelIconComponent—标签前的装饰图标。
labelTooltipstring—标签旁的信息提示。

事件 ​

  • update:modelValue(value):更新单值或区间。
  • change(value):数值改变时触发。
  • changeEnd(value):拖动结束、指针取消或键盘调整结束时触发。

键盘每次有效按键都触发 changeEnd。 到达边界后,值不变时不触发 change。 拖动过程中禁用组件会中止本次拖动。 中止时不触发 changeEnd。

区间与步长 ​

  • 单值模式使用 number。
  • 区间模式使用 [number, number]。
  • 步长从 min 开始计算。
  • 最小间隔为 minStepsBetweenThumbs × step。
  • 两个滑块不能越过彼此。
  • 越界的传入值按边界显示。
  • 传入区间按从小到大显示。
  • 组件不会因修正显示值而主动修改绑定值。
  • 非正步长按 1 处理。
  • max 小于 min 时,区间收缩到 min。

表单 ​

  • 设置 htmlName 后,单值提交一个隐藏字段。
  • 区间提交两个同名隐藏字段。
  • 使用 FormData.getAll(name) 读取区间。
  • 禁用滑块不提交值。
  • 原生表单重置不会改变 v-model。
  • 需要重置值时,在表单的 reset 事件中更新绑定值。

模板引用与属性 ​

  • element:滑动区域的 HTMLDivElement | null。
  • focus(index = 0, options?):聚焦指定滑块。
  • blur():移除滑块焦点。
  • class、style 和其他属性应用于字段外层。
  • aria-labelledby 和 aria-describedby 合并到每个滑块。
  • 组件管理滑块的角色、当前值、边界和禁用状态。
  • labelIcon 插槽替换标签图标。

主题 ​

css
.my-slider {
  --astryx-slider-accent: #047857;
  --astryx-slider-focus: #047857;
  --astryx-slider-height: 200px;
}
  • --astryx-slider-track:未选轨道颜色。
  • --astryx-slider-accent:已选轨道和滑块颜色。
  • --astryx-slider-focus:键盘焦点颜色。
  • --astryx-slider-height:垂直滑块的高度。

滑块直径固定为 20px。轨道厚度为 4px。 Neutral 自动适配明暗模式。