
Security News
How Enterprise Security Is Adapting to AI-Accelerated Threats
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.
@nami-ui/slider
Advanced tools
用于在给定的一个数值区间中选择某个数值。
import { Slider } from '@nami-ui/slider'
export default () => {
const [value, setValue] = useState(0)
return <Slider value={value} onChange={setValue} />
}
通过设置 disabled 属性,可以设置滑动条为禁用状态:
import { Slider } from '@nami-ui/slider'
export default () => <Slider disabled defaultValue={0} />
可能通过设置 vertical 将滑动条切换为垂直方向,或者设置 reverse 来切换为反向滑动:
import { HStack, VStack } from '@nami-ui/stack'
import { Slider } from '@nami-ui/slider'
export default () => (
<HStack spacing>
<VStack spacing style={{ width: 100 }}>
<Slider />
<Slider reverse />
</VStack>
<Slider vertical />
<Slider vertical reverse />
</HStack>
)
可以通过设置 min、max、step 及 points 来定制数值区间,默认为 { min: 0, max: 1 }:
import { Slider } from '@nami-ui/slider'
export default () => (
<div>
<label>min: 0, max: 100</label>
<Slider min={0} max={100} />
<label>min: 0, max: 100, step: 10</label>
<Slider min={0} max={100} step={10} />
<label>
min: 0, max: 100, points: 0, 27, 38, 56, 72, 94
</label>
<Slider
min={0}
max={100}
points={[0, 27, 38, 56, 72, 94]}
/>
<label>
min: 0, max: 100, step: 10, points: 0, 27, 38, 56, 72,
94
</label>
<Slider
min={0}
max={100}
step={10}
points={[0, 27, 38, 56, 72, 94]}
/>
</div>
)
另外,可以通过设置 marks 来显示 step 和 points 对应的点位:
import { Slider } from '@nami-ui/slider'
export default () => (
<Slider
min={0}
max={100}
step={10}
points={[0, 27, 38, 56, 72, 94]}
marks
/>
)
marks 可以配置仅显示 step 对应的点位,或仅显示 points 的:
import { Slider } from '@nami-ui/slider'
export default () => (
<div>
<label>marks: step</label>
<Slider
min={0}
max={100}
step={10}
points={[0, 27, 38, 56, 72, 94]}
marks="step"
/>
<label>marks: points</label>
<Slider
min={0}
max={100}
step={10}
points={[0, 27, 38, 56, 72, 94]}
marks="points"
/>
</div>
)
以及如果需要的话,还可以通过设置 pointMarkLabel 来定制 point 点位下的标签内容及样式:
import clsx from 'clsx'
import { Slider } from '@nami-ui/slider'
export default () => (
<Slider
min={0}
max={100}
points={[0, 27, 38, 56, 72, 94]}
pointMarkLabel={PointLabel}
/>
)
function PointLabel({
value,
active,
className,
...otherProps
}) {
const props = {
...otherProps,
className: clsx('point-label', { active }, className),
}
return <span {...props}>{value}°C</span>
}
根据滑块数量的不同,通常滑动条可以分为三种类型:
这根据所传入值的数量来决定,比如:
import { Slider } from '@nami-ui/slider'
export default () => (
<div>
<Slider defaultValue={[0]} /> // or: single 0
<Slider defaultValue={[0, 1]} />
<Slider defaultValue={[0, 0.5, 1]} />
</div>
)
通常情况下,在单滑块滑动条及双滑块滑动条中,用户所选的都是一个区间值,比如在单滑块滑动条中,所选区间为 [起始值,选中值],而在双滑块滑动条中,则为 [左侧选中值,右侧选中值],而且有时我们会希望在 UI 上高亮所选区间,而这可以通过设置 range 属性来实现:
import { Slider } from '@nami-ui/slider'
export default () => (
<div>
<Slider defaultValue={0} range />
<Slider defaultValue={[0, 1]} range />
</div>
)
range 属性仅在单滑块或双滑块时有效,而在多滑块滑动条中,该属性固定为 false。
另外还请注意,在双滑块中开启 range 属性后,所传入的值应当是有序的,当然 onChange 事件中返回的值也会是有序的。
该滑动条组件除支持指针(鼠标、手指)拖拽之外,还支持滚轮及快捷键(仅当组件获取到焦点时支持)。
FAQs
a slider component.
We found that @nami-ui/slider demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.