旋鈕

旋鈕是一個表單元件,用於使用撥盤定義數字輸入。


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 個步驟。