iter(g313): sortableList 禁用态补视觉线索
This commit is contained in:
@@ -46,6 +46,12 @@ export function sortableList(props: SortableListProps): SortableListHandle {
|
||||
...(props.value ? props.value() : props.items).map((text) => rows.get(text)).filter((row): row is HTMLElement => !!row),
|
||||
) as HTMLElement;
|
||||
syncAria();
|
||||
// 禁用态:拖不动就得看得出来——否则用户反复拖拽无反应,以为组件坏了
|
||||
effect(() => {
|
||||
const off = disabled();
|
||||
root.classList.toggle('is-disabled', off);
|
||||
root.setAttribute('aria-disabled', String(off)); // 读屏同样能播报「当前不可调整」
|
||||
});
|
||||
|
||||
// —— 鼠标 / 触摸拖放:dragstart 记源行,dragover 就地搬节点,dragend 落定提交 ——
|
||||
/*** 最近的纵向滚动祖先:拖到边缘要能自动滚,否则长列表根本拖不到视口外 ***/
|
||||
|
||||
@@ -4564,7 +4564,7 @@
|
||||
{
|
||||
"n": "disabled",
|
||||
"t": "boolean | Signal<boolean>",
|
||||
"d": "禁用拖拽与键盘搬位;缺省 false",
|
||||
"d": "禁用拖拽与键盘搬位,同时整体置灰退到不可交互那一档(光标与悬停都不再给反馈);缺省 false",
|
||||
"df": "false"
|
||||
},
|
||||
{
|
||||
@@ -4581,7 +4581,8 @@
|
||||
"被拖的行以虚线边 + 抬升投影标示(不用整行降透明度:那会把正文对比压到 4.86,低于正文 7:1 口径),落点由指针位置决定,不会出现「拖了三格只动一格」的错觉",
|
||||
"外部要按代码调整顺序用句柄 move(from, to),下标越界或禁用时静默忽略;order() 以 DOM 为唯一真相回读当前顺序",
|
||||
"条目超过一屏也能拖:指针进入最近滚动祖先(overflow-y 为 auto/scroll 且内容确已溢出)上下 48px 感应带即按帧自动滚,松手或离开感应带立刻停;找不到滚动祖先(整页跟随滚动)时不接管滚动,交给浏览器",
|
||||
"什么时候别用:需要严格的两级联动排序(树 / 表格分组)时它不够用,得自己在 onChange 里按父节点重排;跨列表搬运用两个实例各自持有顺序信号"
|
||||
"什么时候别用:需要严格的两级联动排序(树 / 表格分组)时它不够用,得自己在 onChange 里按父节点重排;跨列表搬运用两个实例各自持有顺序信号",
|
||||
"只看不改时传 disabled:光标回到默认、文字退到次级色、悬停与按下都不再变色,读屏播报 aria-disabled——禁用态最忌「看着能拖、拖了没反应」"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -2748,6 +2748,18 @@ button.ua-step-dot:hover {
|
||||
line-height: var(--ua-leading-none);
|
||||
transition: color var(--ua-duration-fast) var(--ua-ease);
|
||||
}
|
||||
/* 禁用态:光标不再承诺可拖,底色与文字一起退到不可交互那一档 */
|
||||
.ua-sortable.is-disabled .ua-sortable-item {
|
||||
cursor: default;
|
||||
color: var(--ua-color-text-muted);
|
||||
}
|
||||
.ua-sortable.is-disabled .ua-sortable-item:hover,
|
||||
.ua-sortable.is-disabled .ua-sortable-item:active {
|
||||
background: var(--ua-color-surface); /* 悬停与按下都不再给反馈:禁用态任何「动了」的暗示都是误导 */
|
||||
}
|
||||
.ua-sortable.is-disabled .ua-sortable-grip {
|
||||
color: var(--ua-color-border);
|
||||
}
|
||||
|
||||
/* —— 轮播 —— */
|
||||
.ua-carousel {
|
||||
|
||||
Reference in New Issue
Block a user