增强自定义跨浏览器样式的本地滚动功能。
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
提供了额外的可定制性,同时保持浏览器的原生滚动行为(以及可访问性功能,如键盘滚动)。
通过键盘滚动默认受到支持,因为该组件依赖于原生滚动。特定的键盘交互可能因平台而异,因此我们在这里不具体说明它们或添加特定的事件监听器来处理键盘事件的滚动。