snappable磁吸
daybrush.com/moveable/re…
1.属性
this.moveable = new Moveable(
this.$refs.content, // moveable元素的父元素
{
className: "moveable", // 可交互组件的class名称
target: this.$refs.example, // movable元素
origin: false, // movable元素的中心点是否可见,default: true
/**拖拽属性 */
draggable: true, // 是否支持可拖拽,default: false
/**更改大小属性 */
resizable: true, // 是否支持更改大小
snappable: true, // 是否初始化磁吸功能
snapContainer: this.$refs.container, // 磁吸功能(辅助线)的容器
snapThreshold: 10, // 磁吸效果触发的临界值,即元素与辅助线间距小于x,则自动贴边
bounds: this.$refs.content.getBoundingClientRect(), // moveable操作元素的外边界值(即包裹moveable元素的dom内边界){left, top, right, bottom}
innerBounds: this.$refs.inner.getBoundingClientRect(), // moveable操作元素的内边界值(即moveable元素包裹的dom的外边界){left, top, right, bottom}
elementGuidelines: [this.$refs.content], // 磁吸效果辅助线的dom列表
elementSnapDirections: {
left: true,
top: true,
right: true,
bottom: true,
center: true,
middle: true,
}, // 每个dom的磁吸辅助线的方位,默认四边 default: { left: true, top: true, right: true, bottom: true }
// horizontalGuidelines: [100, 200, 300, 400], // 水平方向自定义的辅助线列表,[注意:此属性是相对于整个snapContainer元素的坐标]
// verticalGuidelines: [100, 200, 300, 400], // 垂直方向自定义的辅助线列表,[注意:此属性是相对于整个snapContainer元素的坐标]
isDisplaySnapDigit: true, // 是否展示与磁吸辅助线的距离,当moveable元素在磁吸参照元素之外时,moveable元素距离磁吸元素辅助线的虚线长度
isDisplayInnerSnapDigit: true, // 是否展示与磁吸辅助线的距离,当moveable元素内部存在磁吸参照元素时,moveable元素距离磁吸元素辅助线的虚线长度
snapDirections: { left: true, top: true, right: true, bottom: true, center: true, middle: true }, // moveable的target所需要触发磁吸效果的方位,默认上下左右四条边default: { left: true, top: true, right: true, bottom: true }
snapDistFormat: v => `${v}px`, // 元素与辅助线之间距离的展示文本
// snapGap: true, // 暂未发现实际作用 当moveable元素拖动时,元素与辅助线之间是否有空隙default: true(实际测试时,值更改为true或false,未发现实际效果,可能是我的应用场景不对)
// snapGridHeight: 50, // 暂未发现实际作用
// snapGridWidth: 50, // 暂未发现实际作用
// snapDigit: 10, // 暂未发现实际作用
}
);
2.事件
snap(e) {
const {
currentTarget,
elements,
eventType,
gaps,
guidelines,
stop
} = e
console.log(e);
},