Jquery UI Draggable对齐边缘

我正在开发一个用户可以自定义自己的仪表板页面的项目。 这意味着他们可以将组件拖到页面上并根据需要定位它们。

为了获得一个漂亮的布局页面,我希望组件能够相互捕捉。 此时我正在使用snap:true属性,它将组件放在彼此旁边。 但是,我想在它们捕捉之后在组件之间留出一些空间。 因此,它必须捕捉到另一个具有5像素间隙的组件,而不是捕捉到另一个组件的确切位置。

有没有办法做到这一点?

要考虑的几个选项:

  • 使用2.5像素的填充和透明背景将每个组件包裹在封闭元素(例如div)中,并使这些封闭元素成为可拖动元素。 因此,当封闭元素咬合在一起时,您的当前元素将看起来已拼接在一起但彼此间隔5个像素

  • 在可拖动项目上订阅“停止”事件,并在捕捉完成后使用它手动将它们重新定位到5像素间隙

  • 设置’droppable’元素以接受’draggable’组件,将其布置以确保每个组件之间保留5个像素的间隙