旋钮

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


import { Knob } from 'primereact/knob';
         

旋钮用作具有valueonChange属性的受控输入。

0

<Knob value={value} onChange={(e) => setValue(e.value)} />
         

边界通过minmax属性配置,它们的默认值分别为 0 和 100。

10

<Knob value={value} onChange={(e) => setValue(e.value)} min={-50} max={50} />
         

每次移动的大小由 step 属性定义。

10

<Knob value={value} step={10} onChange={(e) => setValue(e.value)} />
         

标签是一个字符串模板,可以使用具有 60 作为占位符的 valueTemplate 属性进行自定义。

60%

<Knob value={value} onChange={(e) => setValue(e.value)} valueTemplate={'{value}%'} />
         

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

40

<Knob value={value} onChange={(e) => setValue(e.value)} strokeWidth={5} />
         

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

60

<Knob value={value} onChange={(e) => setValue(e.value)} size={200} />
         

颜色使用 textColorrangeColorvalueColor 属性进行自定义。

75

<Knob value={value} onChange={(e) => setValue(e.value)} valueColor="#708090" rangeColor="#48d1cc" />
         

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

0

<Knob value={value} size={150} />
<Button icon="pi pi-plus" onClick={() => setValue(value + 1)} disabled={value === 100} />
<Button icon="pi pi-minus" onClick={() => setValue(value - 1)} disabled={value === 0} />
         

当存在readOnly时,该值无法编辑。

50

<Knob value={50} readOnly />
         

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

50

<Knob value={50} disabled />
         

屏幕阅读器

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


<label htmlFor="firstname">Firstname</label>
<InputText id="firstname" />

<span id="lastname">Lastname</span>
<InputText aria-labelledby="lastname" />

<InputText aria-label="Age"/>
     

键盘支持

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