vue-draggable-resizable 自由拖拽缩放

固定区域内自由拖拽位置,记录偏移量x,y

安装

npm install --save vue-draggable-resizable

示例代码

<template>
  <div style="height: 500px; width: 500px; border: 1px solid red; position: relative;">
    <vue-draggable-resizable :w="100" :h="100" v-on:dragging="onDrag" v-on:resizing="onResize" :parent="true">
      <p>Hello! I'm a flexible component. You can drag me around and you can resize me.<br>
      X: {{ x }} / Y: {{ y }} - Width: {{ width }} / Height: {{ height }}</p>
    </vue-draggable-resizable>
  </div>
</template>
 
<script>
import VueDraggableResizable from 'vue-draggable-resizable'        // 组件
import 'vue-draggable-resizable/dist/VueDraggableResizable.css'   // 样式
export default {
  data: function () {
    return {
      width: 0,
      height: 0,
      x: 0,
      y: 0
    }
  },
  components:{VueDraggableResizable },
  methods: {
    onResize: function (x, y, width, height) {
      this.x = x
      this.y = y
      this.width = width
      this.height = height
    },
    onDrag: function (x, y) {
      this.x = x
      this.y = y
    }
  }
}
</script>

demo
https://mauricius.github.io/vue-draggable-resizable/

参数介绍

1.active--是否激活

Type: Boolean
Required: false
Default: false

<vue-draggable-resizable :active="true">

2.draggable--是否可拖拽

Type: Boolean
Required: false
Default: true

<vue-draggable-resizable :draggable="false">

3.resizable--是否可缩放

Type: Boolean
Required: false
Default: true

<vue-draggable-resizable :resizable="false">

4.w--初始宽度

Type: Number
Required: false
Default: 200

<vue-draggable-resizable :w="200">

5.h--初始高度

Type: Number
Required: false
Default: 200

<vue-draggable-resizable :h="200">

6.minw--最小宽度

Type: Number
Required: false
Default: 50

<vue-draggable-resizable :minw="50">

7.minh--最小高度

Type: Number
Required: false
Default: 50

<vue-draggable-resizable :minh="50">

8.x--初始位移x

Type: Number
Required: false
Default: 0

<vue-draggable-resizable :x="0">

9.y-初始位移y

Type: Number
Required: false
Default: 0

<vue-draggable-resizable :y="0">

10.z--显示层级

Type: Number|String
Required: false
Default: auto

<vue-draggable-resizable :z="999">

11.handles--控制区域

Type: Array
Required: false
Default: ['tl', 'tm', 'tr', 'mr', 'br', 'bm', 'bl', 'ml']

- tl - Top left
- tm - Top middle
- tr - Top right
- mr - Middle right
- br - Bottom right
- bm - Bottom middle
- bl - Bottom left
- ml - Middle left

<vue-draggable-resizable :handles="['tm','bm','ml','mr']">

12:axis--设置拖拽方向(x,y,both)

Type: String
Required: false
Default: both

<vue-draggable-resizable axis="x">

13: grid--网格移动

Type: Array
Required: false
Default: [1,1]

<vue-draggable-resizable :grid="[1,1]">

14: parent--限制在父元素内移动

Type: Boolean
Required: false
Default: false

<vue-draggable-resizable :parent="true">

15:dragHandle--定义拖拽元素

Type: String
Required: false

<vue-draggable-resizable drag-handle=".drag">

16: dragCancel--Defines a selector that should be used to prevent drag initialization.

Type: String
Required: false

<vue-draggable-resizable drag-cancel=".drag">

17: maximize--If set to true allows the component to fill its parent when double-clicked.

Type: Boolean
Required: false
Default: false

<vue-draggable-resizable :maximize="true">

事件

1.activated

Required: false
Parameters: -

Called whenever the component gets clicked, in order to show handles.

<vue-draggable-resizable @activated="onActivated">

2.deactivated

Required: false
Parameters: -

Called whenever the user clicks anywhere outside the component, in order to deactivate it.

<vue-draggable-resizable @deactivated="onDeactivated">

3.resizing

Required: false
Parameters:

- left the X position of the element
- top the Y position of the element

width the width of the element
height the height of the element
Called whenever the component gets resized.

<vue-draggable-resizable @resizing="onResizing">

4.resizestop

Required: false
Parameters:

- left the X position of the element
- top the Y position of the element

width the width of the element
height the height of the element
Called whenever the component stops getting resized.

<vue-draggable-resizable @resizestop="onResizstop">

5.dragging

Required: false
Parameters:

- left the X position of the element
- top the Y position of the element

Called whenever the component gets dragged.

<vue-draggable-resizable @dragging="onDragging">

6.dragstop

Required: false
Parameters:

- left the X position of the element
- top the Y position of the element

Called whenever the component stops getting dragged.

<vue-draggable-resizable @dragstop="onDragstop">
引用自 https://www.cnblogs.com/yycc11/p/9565915.html
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在生活中挣扎的我们,总是花尽精力去后悔所做的每件事。“我后悔高三没有努力;我后悔来到这个学校;我后悔选择这个专业;...
    蜕变u阅读 53评论 0 0
  • 一、讲道理 1.讲道理比声音大有用 因为曾经我的父亲是一个脾气暴躁且略有一些霸道的人(他身边的人必须得听他的,按他...
    我是学生方阅读 501评论 1 0
  • 之所以这么努力、就是为了让自己成功的速度、超过父母老去的速度、 永远都不要认命、人生注定是平凡的、但并不平庸...
    帅气的王炸阅读 272评论 0 0