多列表拖拽滚动需显式启用scroll选项并配置参数:Vue.Draggable用:scroll="true",Sortable设scroll: true;容器须有固定高度和overflow-y:auto;调节scrollSensitivity(20–60)和scrollSpeed(5–20);跨列表时各容器均需满足滚动条件;可选AutoScroll插件增强体验。

多列表拖拽时,滚动行为不是默认开启的,必须显式配置才能在拖拽靠近容器边缘时自动滚动视图。核心在于启用 scroll 选项,并合理设置灵敏度与速度参数。
启用基础滚动功能
使用 Sortable 或 Vue.Draggable 时,需在初始化或组件属性中开启滚动支持:
- Vue.Draggable:添加
:scroll="true"属性(v-model 模式下也生效) - 原生 Sortable:在配置对象中写
scroll: true - 注意:仅设
scroll: true不够,还需确保容器有固定高度且可滚动(overflow-y: auto或scroll)
调整滚动灵敏度与响应范围
默认滚动触发太迟或太敏感,容易卡顿或误触发。关键参数是 scrollSensitivity 和 scrollSpeed:
-
scrollSensitivity:数字,单位像素;值越小,越靠近边缘就触发滚动(建议 20–60) -
scrollSpeed:滚动速度,单位像素/帧;值越大滚动越快(建议 5–20,过高会“冲过头”) - Vue.Draggable 中写法:
:scroll-sensitivity="30" :scroll-speed="10"
跨列表滚动的注意事项
当多个 <draggable></draggable> 共享同一 group 且需互相拖拽时,每个列表容器都应独立满足滚动条件:
- 每个列表容器必须有明确的
height和overflow-y: auto - 避免父级容器
overflow: hidden截断滚动事件冒泡 - 若某列表项数极少(如只有 1–2 条),即使启用了 scroll,也可能因无滚动空间而不触发——此时可加最小高度(如
min-height: 80px)保障滚动上下文存在
配合 AutoScroll 插件增强体验(进阶)
Sortable 官方 AutoScroll 插件提供更稳定的滚动控制,尤其适合嵌套或复杂布局:
- 安装后显式挂载:
Sortable.mount(new AutoScroll()) - 它会接管滚动逻辑,支持多容器联动、防抖、边界平滑减速等
- 启用后仍需保留
scroll: true,但灵敏度参数优先走插件配置

















