组件
角度滑块 Angle Slider
AngleSlider:角度滑块。平面刻度盘上有发丝线角度刻度,滑块像指针一样在其上移动。部件:Root、Label、ValueText、Control、Thumb、MarkerGroup、Marker、HiddenInput。
#基础用法
45deg
<script setup lang="ts">
import { AngleSlider } from "@bysages/vue";
import { ref } from "vue";
const value = ref(45);
</script>
<template>
<AngleSlider.Root v-model="value" class="w-40">
<AngleSlider.Label>Light angle</AngleSlider.Label>
<AngleSlider.ValueText />
<AngleSlider.Control>
<AngleSlider.MarkerGroup>
<AngleSlider.Marker :value="0" />
<AngleSlider.Marker :value="90" />
<AngleSlider.Marker :value="180" />
<AngleSlider.Marker :value="270" />
</AngleSlider.MarkerGroup>
<AngleSlider.Thumb />
</AngleSlider.Control>
</AngleSlider.Root>
</template>
#属性
#Control
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#HiddenInput
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Label
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#MarkerGroup
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Marker
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
value | number | 标记值 |
#Root
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
size | String as PropType<"sm" | "md" | "lg"> | "md" | 刻度盘尺寸,可为 sm、md 或 lg;尺寸即指针扫过的直径 |
aria-label | string | 滑块的 aria-label | |
aria-labelledby | string | 滑块的 aria-labelledby | |
defaultValue | number | 0 | 滑块初始值;无需控制滑块值时使用 |
dir | 'ltr' | 'rtl' | "ltr" | 文档的文本方向和书写方向 |
disabled | boolean | 滑块是否禁用 | |
getRootNode | () => ShadowRoot | Document | Node | 用于在 iframe、Electron 等自定义环境中正确解析 document 的根节点 | |
id | string | 组件内部状态机的唯一标识 | |
ids | Partial<{ root: string; thumb: string; hiddenInput: string; control: string; valueText: string; }> | 状态机内各元素的 id;便于组合使用 | |
invalid | boolean | 滑块是否无效 | |
modelValue | number | 角度滑块的 v-model 值 | |
name | string | 滑块名称,用于表单提交 | |
readOnly | boolean | 滑块是否只读 | |
step | number | 1 | 滑块步进值 |
#Thumb
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#ValueText
纯造型的部件——自身没有属性,沿用部件结构的共享样式。