Modifiers
Modifiers 可以让你动态地修改 sensors 检测到的移动坐标。它们可以应用于很多的使用场景,例如:
将移动限制在单一坐标轴上
将移动限制在 draggable 节点容器的矩形边框内
将移动限制在 draggable 节点的滚动容器矩形边框内
施加阻力或夹紧运动
安装
开始使用 modifiers 前,请先通过 yarn
或 npm
安装依赖包。
使用方式
@dnd-kit/modifiers
包中提供了很多有用的 modifiers,可以应用到 DndContext
和 DragOverlay
中。
从上面的示例中可以看出,在 DndContext
和 DragOverlay
中都可以使用不同的 modifiers。
内置的 modifiers
将移动限制在单一坐标轴上
restrictToHorizontalAxis
restrictToHorizontalAxis
将移动限制在横向坐标轴上。
restrictToVerticalAxis
restrictToVerticalAxis
将移动限制在纵向坐标轴上。
将移动限制在一个容器的矩形边框内
restrictToWindowEdges
restrictToWindowEdges
将移动限制在窗口的边缘处。该 modifier 可以有效地阻止 DragOverlay
移出窗口的边界。
restrictToParentElement
restrictToParentElement
将移动限制在被选中的 draggale 元素的父元素内。
restrictToFirstScrollableAncestor
restrictToFirstScrollableAncestor
将移动限制在被选中的 draggable 元素的第一个可滚动的上层元素内。
网格对齐
createSnapModifier
createSnapModifier
该函数的作用是创建 modifiers 以实现对齐给定大小的网格。
创建自定义的 modifiers
参考 @dnd-kit/modifiers
内置的 modifiers 实现,可以创建自定义的 modifiers: https://github.com/clauderic/dnd-kit/tree/master/packages/modifiers/src
例如,下面的代码就创建了一个 modifier 可以实现网格对齐:
最后更新于
这有帮助吗?