美文网首页
moveable组件学习笔记五:snap磁吸贴边效果

moveable组件学习笔记五:snap磁吸贴边效果

作者: 羊驼626 | 来源:发表于2022-02-14 14:04 被阅读0次

snappable磁吸

https://daybrush.com/moveable/release/latest/doc/Moveable.Snappable.html

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
// this.moveable.on('snap', this.snap)
snap(e) {
      const { 
      currentTarget, // 当前操作的moveable实例
      elements, // [element] 与moveable发生磁吸交互的dom元素: 即elementGuidelines中的元素
      eventType, // 事件类型:"snap"
      gaps, // 元素之间的间隙[暂未发现实际作用,该数组一直是空数组]
      guidelines, // horizontalGuideline和verticalGuidelines(包括bounds和innerBounds)中与moveable发生交互的辅助线数组
      stop // function类型[暂未发现实际作用]
       } = e
      console.log(e);
    },

相关文章

网友评论

      本文标题:moveable组件学习笔记五:snap磁吸贴边效果

      本文链接:https://www.haomeiwen.com/subject/kniclrtx.html