refactor(ThumbOnlyRangeSlider): 优化滑块拖拽逻辑和事件处理

- 移除原有基于客户端X坐标计算值的函数,改用更精确的偏移计算
- 实现滑块中心位置和偏移值转换函数,确保滑块不会超出轨道边界
- 将原生输入禁用指针事件,由外层容器处理所有指针事件以提升触控体验
- 修复触摸设备上滑块跳跃问题,防止点击轨道时误触导致值突变
- 优化指针事件绑定和释放逻辑,支持多种交互状态切换
- 保持键盘无障碍可用,输入框仍可通过键盘改变值并触发事件

style(BrandDrawer): 修正抽屉高度适配并增加对动态视窗单位的支持

- 将固定高度单位58dvh替换为58vh,并增加max-h-full以限制最大高度
- 利用CSS supports媒体查询,针对支持1dvh单位的浏览器恢复58dvh高度
- 修复在不同设备和浏览器中抽屉显示高度不一致的问题
This commit is contained in:
eafonyang
2026-09-15 17:09:13 +08:00
parent 65209d9577
commit cc0e9a3334
2 changed files with 92 additions and 75 deletions
@@ -164,7 +164,7 @@ export function BrandDrawer({
onClick={onClose}
/>
<div
className="relative z-10 flex h-[58dvh] flex-shrink-0 flex-col overflow-hidden rounded-t-[18px] bg-white shadow-[0_-8px_32px_rgba(0,0,0,0.35)]"
className="relative z-10 flex h-[58vh] max-h-full flex-shrink-0 flex-col overflow-hidden rounded-t-[18px] bg-white shadow-[0_-8px_32px_rgba(0,0,0,0.35)] supports-[height:1dvh]:h-[58dvh]"
onClick={(e) => e.stopPropagation()}
>
<div className="flex shrink-0 items-center justify-center pt-2 pb-1">