vue可调整大小和可拖动的组件---vue-draggable-resizable

news/2024/7/10 0:53:35 标签: js, vue, java, javascript, css

vue-draggable-resizable

用于可调整大小和可拖动元素的组件、并支持组件之间的冲突检测和组件对齐。

使用流程:

安装依赖:

npm install --save vue-draggable-resizable

注册组件(在main.js中添加下列代码):

import Vue from 'vue'
import VueDraggableResizable from 'vue-draggable-resizable'
Vue.component('vue-draggable-resizable', VueDraggableResizable)

也可以在单个文件中使用该组件:

<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>你可以进行拖拽和移动<br>
      X坐标为: {{ x }};Y坐标为: {{ y }} <br> 宽为: {{ width }} ;高为: {{ height }}</p>
    </vue-draggable-resizable>
  </div>
</template>

<script>
import VueDraggableResizable from 'vue-draggable-resizable'

export default {
  data: function () {
    return {
      width: 0,
      height: 0,
      x: 0,
      y: 0
    }
  },
  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>

Props

isConflictCheck

Type: Boolean
Required: false
Default: false

定义组件是否开启冲突检测。

<vue-draggable-resizable :is-conflict-check="true">

snap

Type: Boolean
Required: false
Default: false

定义组件是否开启元素对齐。

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

snapTolerance

Type: Number
Required: false
Default: 5

当调用snap时,定义组件与元素之间的对齐距离,以像素为单位。

<vue-draggable-resizable :snap="true" :snap-tolerance="20">

active

Type: Boolean
Required: false
Default: false

确定组件是否应处于活动状态。 prop对更改做出反应,也可以与syncmodifier 一起使用以保持状态与父级同步。

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

draggable

Type: Boolean
Required: false
Default: true

定义组件应该是否可拖动。

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

resizable

Type: Boolean
Required: false
Default: true

定义组件是否可以调整大小。

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

w

Type: Number
Required: false
Default: 200

定义元素的初始宽度。

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

h

Type: Number
Required: false
Default: 200

定义元素的初始高度。

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

minw

Type: Number
Required: false
Default: 50

定义元素的最小宽度。

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

minh

Type: Number
Required: false
Default: 50

定义元素的最小高度。

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

x

Type: Number
Required: false
Default: 0

定义元素的初始x位置。

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

y

Type: Number
Required: false
Default: 0

定义元素的初始y位置。

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

z

Type: Number|String
Required: false
Default: auto

定义元素的zIndex。

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

handles

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

定义句柄数组以限制元素大小调整:

  • tl - 左上角
  • tm - 中上方
  • tr - 右上角
  • mr - 右中方
  • br - 右下角
  • bm - 下中方
  • bl - 左下方
  • ml - 左中方
<vue-draggable-resizable :handles="['tm','bm','ml','mr']">

axis

Type: String
Required: false
Default: both

定义元素可拖动的轴。可用值为x, y 或者 both.

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

grid

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

定义捕捉元素的网格。

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

parent

Type: Boolean
Required: false
Default: false

将元素的移动和尺寸限制为父元素。

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

dragHandle

Type: String
Required: false

定义应该用于拖动组件的选择器。

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

dragCancel

Type: String
Required: false

定义应该用于阻止拖动初始化的选择器。

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

maximize

Type: Boolean
Required: false
Default: false

如果设置为true,则允许组件在双击时填充其父级。

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

Events

activated

Required: false
Parameters: -

单击组件时调用,以显示句柄。

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

deactivated

Required: false
Parameters: -

每当用户单击组件外的任何位置时调用,以便停用它。

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

resizing

Required: false
Parameters:

  • left元素的X位置
  • top 元素的Y位置
  • width元素的宽度
  • height 元素的高度

每当组件调整大小时调用。

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

resizestop

Required: false
Parameters:

  • left 元素的X位置
  • top 元素的Y位置
  • width 元素的宽度
  • height 元素的高度

每当组件停止调整大小时调用。

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

dragging

Required: false
Parameters:

  • left 元素的X位置
  • top 元素的Y位置

每当拖动组件时调用。

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

dragstop

Required: false
Parameters:

  • left元素的X位置
  • top 元素的Y位置

每当组件停止拖动时调用。

<vue-draggable-resizable @dragstop="onDragstop">

http://www.niftyadmin.cn/n/509765.html

相关文章

CSS3_多媒体查询

文章目录多媒体查询浏览器兼容多媒体查询语法多媒体查询简单实例多媒体类型webkit-overflow-scrolling多媒体查询 CSS3 的多媒体查询继承了 CSS2 多媒体类型的所有思想&#xff1a; 取代了查找设备的类型&#xff0c;CSS3 根据设置自适应显示。 媒体查询可用于检测很多事情&a…

vue组件传值、通信

vue组件传值、通信 父组件--------》子组件 属性 // parent <HelloWorld msg"Welcome to Your Vue.js App"/>// child props: { msg: String } 引用refs // parent <HelloWorld ref"hw"/>修改子组件的值 this.$refs.hw.xx xxx 子组件chidren …

CSS_浏览器兼容常见BUG

一、概述 CSS Bug: CSS样式在各浏览器中解析不一致的情况&#xff0c;或者说CSS样式在浏览器中不能正确显示的问题称为CSS bug.CSS Hack: CSS中&#xff0c;Hack是指一种兼容CSS在不同浏览器中正确显示的技巧方法&#xff0c;因为它们都属于个人对CSS代码的非官方的修改&#…

vue手写el-form组件

index.vue <template><div><s-form :model"model" :rules"rules" ref"loginForm"><s-form-item label"用户名" prop"username"><s-input v-model"model.username"></s-input>…

【JS】正则表达式

文章目录正则创建正则表达式字面量创建构造函数创建正则表达式里面的符号元字符限定符边界符特殊符号标示符正则表达式的方法testexec字符串的方法searchmatchreplace正则 正则表达式&#xff0c;有名“规则表达式”由我们自己书写“规则”&#xff0c;专门用来检测字符串是否…

js 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果

给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 var reverse function(x) {var t x.toString().s…

【JS】JSON 方法使用

文章目录小案例JSON.parse()reviver 函数JSON.stringify()replacer 参数space 参数小案例 修改属性名 let obj {a1:a1, a2: "a22", a3: "a1"}; JSON.parse(JSON.stringify(obj).replace(/a1/g,"aa")); // 不会改变原对象 console.log(obj); /…

dom 相同父节点查找

描述 查找两个节点的最近的一个共同父节点&#xff0c;可以包括节点自身 输入描述&#xff1a; oNode1 和 oNode2 在同一文档中&#xff0c;且不会为相同的节点 function commonParentNode(oNode1, oNode2) {let parent1 oNode1.parentNode;let parent2 oNode2.parentNode;if…