vue中使用vue-draggable-resizable,拖拽之后,使元素位置恢复默认状态

元素拖拽之后,位置会改变。如何手动使其位置恢复原状呢?

vue-draggable-resizable的源码中将咱们传入的x,y做了一个值的转换,转换为了left,top。

源码中style属性加到了computed里面,所以left和top改变之后 ,元素的位置就会改变

 所以我们初始化的时候,不仅需要修改x和y的值,还需要手动修改vue-draggable-resizable的left和top的值


<template>

  <div>
        <el-button @click="rePosition">恢复默认位置</el-button>
        <vue-draggable-resizable
            ref="$dragPlug"
            :w="150"
            :h="150"
            :x="canvasX"
            :y="canvasY"
            :min-width="50"
            :min-height="50"
            :grid="[10, 10]"
          >
           <div style="width:100px;height:100px;background:#ddd">
                呵呵呵   
            </div>
          </vue-draggable-resizable>
    </div>
    
</template>

<script>
import VueDraggableResizable from 'vue-draggable-resizable';
export default {
  components: {
    VueDraggableResizable,
   
  },
  data() {
    return {
      canvasX: 0,
      canvasY: 50
    };
  },
 
  mounted() {},
  
  methods: {
    rePosition() {
        this.canvasX = 0;
        this.canvasY = 50;
        this.$refs.$dragPlug.left = this.canvasX;
        this.$refs.$dragPlug.top = this.canvasY;
        //this.$refs.$dragPlug.$el.style.transform = `translate(${this.canvasX}px, 
  ${this.canvasY}px)`;
    }
  }
};
</script>

<style lang='scss'>

</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值