增强原生滚动功能以实现自定义的跨浏览器样式。
import React from 'react';import * as ScrollArea from '@radix-ui/react-scroll-area';import './styles.css';const TAGS = Array.from({ length: 50 }).map((_, i, a) => `v1.2.0-beta.${a.length - i}`);const ScrollAreaDemo = () => (<ScrollArea.Root className="ScrollAreaRoot"><ScrollArea.Viewport className="ScrollAreaViewport"><div style={{ padding: '15px 20px' }}><div className="Text">Tags</div>{TAGS.map((tag) => (<div className="Tag" key={tag}>{tag}</div>))}</div></ScrollArea.Viewport><ScrollArea.Scrollbar className="ScrollAreaScrollbar" orientation="vertical"><ScrollArea.Thumb className="ScrollAreaThumb" /></ScrollArea.Scrollbar><ScrollArea.Scrollbar className="ScrollAreaScrollbar" orientation="horizontal"><ScrollArea.Thumb className="ScrollAreaThumb" /></ScrollArea.Scrollbar><ScrollArea.Corner className="ScrollAreaCorner" /></ScrollArea.Root>);export default ScrollAreaDemo;
滚动条位于可滚动内容的顶部,不占用任何空间。
滚动是原生的;没有通过 CSS 转换进行的底层位置移动。
仅在与控件交互时才模拟指针行为,因此键盘控件不受影响。
支持从右到左方向。
从命令行安装组件。
导入所有部分并将其组合在一起。
包含滚动区域的所有部分。
滚动区域的视窗区域。
垂直滚动条。添加第二个 Scrollbar
,并使用 orientation
属性启用水平滚动。
在 ScrollArea.Scrollbar
中使用的滑块。
垂直和水平滚动条相遇的角落。
在大多数情况下,最好依赖于原生滚动并使用 CSS 中可用的自定义选项。当这些还不够时,ScrollArea
提供了额外的自定义功能,同时保持了浏览器的原生滚动行为(以及无障碍功能,如键盘滚动)。
默认情况下支持通过键盘滚动,因为组件依赖于原生滚动。特定平台之间的特定键盘交互可能有所不同,因此我们不会在此处指定它们或添加特定的事件监听器来处理通过按键事件进行的滚动。