Skip to content

拖拽分隔条

@astryxdesign/core v0.7.1 · ResizeHandle

Resize Handle Props ​

名称类型默认值说明
direction'horizontal' | 'vertical''horizontal'horizontal 改宽度,vertical 改高度。横向分隔条的 aria-orientation 是 vertical。
position'inline' | 'overlay''inline'inline 占一格,overlay 贴在父级边缘。
isReversedbooleanfalse面板在结束边时,把拖拽方向反过来。
isDisabledbooleanfalse关掉指针和键盘调整。
hasDividerbooleanfalse画出 1px 分隔线。线本身就是把手。
isAlwaysVisiblebooleantrue静止时也显示握把。
pillPlacement'auto' | 'start' | 'end' | 'center''auto'握把相对分隔线的位置。auto 靠面板一侧,面板收到 0 时翻到另一侧。
labelstring当前语言无障碍名称。英文默认是 “Resize handle”,中文默认是 “拖拽分隔条”。
resizableResizableProps-useResizable 返回的 props。

插槽 ​

名称说明
default替换握把。分隔条角色和键盘行为仍留在把手上。

useResizable ​

从 @astryx-vue/core 引入。单个区域返回 { size, isCollapsed, collapse, expand, resize, props }。传入 regions 时,每个键各返回一份。

名称类型默认值说明
defaultSizenumber | string | ResizablePercentSize250初始尺寸。数字是像素。有吸附点时,初值会落到最近的点上。
minSizenumber | string | ResizablePercentSize50展开时的最小尺寸。
maxSizenumber | string | ResizablePercentSizeInfinity最大尺寸。
collapsiblebooleanfalse允许收到 0。
collapsedSizenumber40拖拽低于这个像素值时收起。
snapsnumber[]-尺寸只会停在这些像素点上。离两个点一样远时,留在更靠前的那个。
shrinkOrdernumber-多个区域共用 containerRef 时的收缩顺序。容器比这些区域更窄时,数字更小的先收到 minSize。拖拽仍然改的是该区域自己的目标尺寸。
direction'horizontal' | 'vertical''horizontal'百分比尺寸读取容器的哪一条轴。
containerRefRef<HTMLElement | null>-用来解析百分比的元素。还没量到时按 1200 计算,并且不写入存储。
autoSaveIdstring-把 { size, isCollapsed } 存在 astryx-resizable: 加这个 id。多个区域会再接 :key。
defaultIsCollapsedbooleanfalsecollapsible 为 true 时,一开始就收起。
isCollapsedboolean-受控的收起状态。变化通过 onCollapseChange 报出。
onSizeChange(size: number) => void-尺寸落下之后调用。
onCollapseChange(isCollapsed: boolean) => void-收起状态变化时调用。
regionsRecord<string, ResizableRegionConfig>-一次管多个区域。每一项接受上面的尺寸字段。

percent(value, { min }) 或 percent(value, { max }) 用来写百分比尺寸。min 和 max 的形状是 { type: 'pixel', value }。

方向键移动 10px,按住 Shift 移动 50px。有吸附点时改为跳到相邻吸附点,Shift 跳两个。Home、End、Enter 分别跳到最小值、配置过的最大值和折叠前的尺寸。没写最大值时 End 不动。

原生属性 ​

ResizeHandle 渲染 <div role="separator">。

以下内容落到这个元素上:

  • HTML 属性。
  • aria-* 属性。
  • data-* 属性。
  • class。
  • style。

class 会合并。