增强原生滚动功能,实现自定义、跨浏览器的样式。
import * as React from "react";import { ScrollArea } from "radix-ui";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
提供了额外的可定制性,同时保持了浏览器的原生滚动行为(以及辅助功能,例如键盘滚动)。
默认情况下支持通过键盘滚动,因为该组件依赖于原生滚动。特定平台的键盘交互可能有所不同,因此我们在此处不指定它们,也不添加特定的事件监听器来处理通过按键事件进行的滚动。