旋钮

旋钮是一个表单组件,用于使用拨盘定义数字输入。


import Knob from 'primevue/knob';

旋钮与v-model属性一起使用,用于双向值绑定。

0

<Knob v-model="value" />

旋钮与 PrimeVue 表单库无缝集成。

15

<Form v-slot="$form" :resolver="resolver" :initialValues="initialValues" @submit="onFormSubmit" class="flex flex-col gap-4">
    <div class="flex flex-col items-center gap-1">
        <Knob name="knob" />
        <Message v-if="$form.knob?.invalid" severity="error" size="small" variant="simple">{{ $form.knob.error?.message }}</Message>
    </div>
    <Button type="submit" severity="secondary" label="Submit" />
</Form>

边界使用minmax值配置,它们的默认值分别为0和100。

10

<Knob v-model="value" :min="-50" :max="50" />

步长因子默认为1,可以使用step选项进行自定义。

40

<Knob v-model="value5" :step="10" />

可以使用模板字符串或函数,通过valueTemplate属性自定义标签。

60%

<Knob v-model="value" valueTemplate="{value}%" />

边框大小使用stroke属性以像素为单位指定。

40

<Knob v-model="value" :strokeWidth="5" />

旋钮的直径使用size属性以像素为单位定义。

60

<Knob v-model="value" :size="200" />

valueColor定义值颜色,rangeColor定义范围背景,类似地,textColor配置值文本的颜色。此外,strokeWidth用于确定范围和值部分的描边宽度。

50

<Knob v-model="value" valueColor="SlateGray" rangeColor="MediumTurquoise" />

旋钮也可以使用自定义控件进行控制。

0

<Knob v-model="value" :size="150" readonly />
<div class="flex gap-2">
    <Button icon="pi pi-plus" @click="value++" :disabled="value >= 100" />
    <Button icon="pi pi-minus" @click="value--" :disabled="value <= 0" />
</div>

当存在readonly时,值无法编辑。

50

<Knob v-model="value" readonly />

当存在disabled时,会应用视觉提示以表明无法与旋钮进行交互。

50

<Knob v-model="value" disabled />

屏幕阅读器

旋钮元素组件除了aria-valueminaria-valuemaxaria-valuenow属性外,还使用slider角色。可以使用aria-labelledbyaria-label道具定义描述组件的值。


<span id="label_number">Number</span>
<Knob aria-labelledby="label_number" />

<Knob aria-label="Number" />

键盘支持

按键功能
tab将焦点移动到滑块。
左箭头下箭头递减值。
右箭头上箭头递增值。
home设置最小值。
end设置最大值。
page up将值递增10步。
page down将值递减10步。