vue3 拖拽插件 Vue3DraggableResizable

这篇具有很好参考价值的文章主要介绍了vue3 拖拽插件 Vue3DraggableResizable。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue3DraggableResizable 拖拽插件的官方文档

一、Vue3DraggableResizable 的属性和事件

1、Vue3DraggableResizable 的属性配置

属性 类型 默认值 功能描述 示例
initW Number null 设置初始宽度(px) <Vue3DraggableResizable :initW=“100” />
initH Number null 设置初始高度(px) <Vue3DraggableResizable :initH=“100” />
w Number 0 组件的当前宽度(px),你可以使用“v-model:w”语法使它和父组件保持一致 <Vue3DraggableResizable v-model:w=“100” />
h Number 0 组件的当前高度(px),你可以使用“v-model:h”语法使它和父组件保持一致 <Vue3DraggableResizable v-model:h=“100” />
x Number 0 组件距离父容器的左侧的距离(px),你可以使用“v-model:x”语法使它和父组件保持一致 <Vue3DraggableResizable v-model:x=“100” />
y Number 0 组件距离父容器的右侧的距离(px),你可以使用“v-model:y”语法使它和父组件保持一致 <Vue3DraggableResizable v-model:y=“100” />
minW Number 20 组件的最小宽度(px) <Vue3DraggableResizable :minW=“100” />
minH Number 20 组件的最小高度(px) <Vue3DraggableResizable :minH=“100” />
active Boolean false 组件当前是否处于活跃状态,你可以使用“v-model:active”语法使它和父组件保持一致 <Vue3DraggableResizable v-model:active=“true” />
draggable Boolean true 组件是否可拖动 <Vue3DraggableResizable :draggable=“false” />
resizable Boolean true 组件是否可调整大小 <Vue3DraggableResizable :resizable=“false” />
lockAspectRatio Boolean false 该属性用来设置是否锁定比例 <Vue3DraggableResizable :lockAspectRatio=“true” />
disabledX Boolean false 是否禁止组件在 X 轴上移动 <Vue3DraggableResizable :disabledX=“true” />
disabledY Boolean false 是否禁止组件在 Y 轴上移动 <Vue3DraggableResizable :disabledY=“true” />
disabledW Boolean false 是否禁止组件修改宽度 <Vue3DraggableResizable :disabledW=“true” />
disabledH Boolean false 是否禁止组件修改高度 <Vue3DraggableResizable :disabledH=“true” />
parent Boolean false 是否将组件的拖动和缩放限制在其父节点内,即组件不会超出父节点,默认关闭 <Vue3DraggableResizable :parent=“true” />
handles Array [‘tl’, ‘tm’, ‘tr’, ‘ml’, ‘mr’, ‘bl’, ‘bm’, ‘br’] 定义缩放的句柄(共八个方向):
tl : 上左
tm : 上中
tr : 上右
mr : 中左
ml : 中右
bl : 下左
bm : 下中
br : 下右
<Vue3DraggableResizable :handles=“[‘tl’,‘tr’,‘bl’,‘br’]” />
classNameDraggable String ‘draggable’ 自定义组件的类名,该类名在组件是“可拖动”时显示 <Vue3DraggableResizable classNameDraggable=“draggable” />
classNameResizable String ‘resizable’ 自定义组件类名,该类名在组件是“可缩放”时显示 <Vue3DraggableResizable classNameResizable=“resizable” />
classNameDragging String ‘dragging’ 定义组件在拖动时显示的类名 <Vue3DraggableResizable classNameDragging=“dragging” />
classNameResizing String ‘resizing’ 定义组件在缩放时显示的类名 <Vue3DraggableResizable classNameResizing=“resizing” />
classNameActive String ‘active’ 定义组件在活跃状态下的类名 <Vue3DraggableResizable classNameActive=“active” />
classNameHandle String ‘handle’ 定义缩放句柄的类名 <Vue3DraggableResizable classNameHandle=“my-handle” />
classNameHandle String ‘handle’ 定义缩放句柄的类名 <Vue3DraggableResizable classNameHandle=“my-handle” />

2、Vue3DraggableResizable 的事件

事件 入参 触发时机 功能描述 示例
activated - 组件从非活跃状态到活跃状态时触发 - <Vue3DraggableResizable @activated=“activatedHandle”/>
deactivated - 组件从活跃状态到非活跃状态时触发 - <Vue3DraggableResizable @deactivated=“deactivatedHandle”/>
drag-start { x: number, y: number } 组件开始拖动时触发 - <Vue3DraggableResizable @drag-start=“dragStartHandle”/>
dragging { x: number, y: number } 组件在拖动过程中持续触发 - <Vue3DraggableResizable @dragging=“draggingHandle”/>
drag-end { x: number, y: number } 组件拖动结束时触发 - <Vue3DraggableResizable @drag-end=“dragEndHandle”/>
resize-start { x: number, y: number, w: number, h: number } 组件开始缩放时触发 - <Vue3DraggableResizable @resize-start=“resizeStartHandle” />
resizing { x: number, y: number, w: number, h: number } 组件在缩放过程中持续触发 - <Vue3DraggableResizable @resizing=“resizingHandle” />
resize-end { x: number, y: number, w: number, h: number } 组件缩放结束时触发 - <Vue3DraggableResizable @resize-end=“resizeEndHandle” />

二、Vue3DraggableResizable 的使用案例

以 vue3 项目为例,看看 Vue3DraggableResizable 的用法:

首先,在 main.ts 中引入 Vue3DraggableResizable,并将其挂在到vue实例上:

// 引入拖拽库
import Vue3DraggableResizable from 'vue3-draggable-resizable'
import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'

// Vue 实例
const app = createApp(App)
app.use(Vue3DraggableResizable)

然后在组件中的使用如下:文章来源地址https://www.toymoban.com/news/detail-771661.html

<template>
	<!-- 拖拽组件 -->
    <Vue3DraggableResizable
        v-if="isShowMapToolBar"
        classNameDraggable="draggable"
        :initW="70"
        :initH="30"
        v-model:x="dragData.x"
        v-model:y="dragData.y"
        v-model:w="dragData.w"
        v-model:h="dragData.h"
        v-model:active="dragData.active"
        :draggable="true"
        :resizable="true"
        :parent="true"
        @activated="print('activated')"
        @deactivated="print('deactivated')"
        @drag-start="print('drag-start')"
        @resize-start="print('resize-start')"
        @dragging="print('dragging')"
        @resizing="print('resizing')"
        @drag-end="print('drag-end')"
        @resize-end="print('resize-end')"
    >
        <div>Test</div>
    </Vue3DraggableResizable>
</template>
<script setup lang="ts">
// 拖拽的配置
const dragData = reactive({
    x: 10,
    y: 10,
    h: 100,
    w: 100,
    active: false,
});
// 拖拽的事件
const print = (val) => {
	console.log(val)
};
</script>

到了这里,关于vue3 拖拽插件 Vue3DraggableResizable的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2和vue3拖拽移动div

    直接上代码,代码可以直接运行, vue2拖拽移动div: vue3拖拽移动div: 设置div居中后,发现一开始拖拽时,div会跑到最左边,vue3优化代码如下:

    2024年02月07日
    浏览(40)
  • vue3鼠标拖拽滑动效果

    第一步 在utils下面新建一个directives.js文件,然后引入如下代码 第二步 在main.js中引入  第三步 页面直接使用即可

    2024年02月11日
    浏览(40)
  • vue3实现组件可拖拽 vuedraggable

    npm i -S vuedraggable@next 中文文档,里面有完整代码案例,值得一看 vue.draggable vue3 版本在工作台中的应用场景 - itxst.com

    2024年02月13日
    浏览(39)
  • Vue3封装可拖拽的弹窗

    核心代码(复制就可以使用了) 使用方式

    2024年01月19日
    浏览(41)
  • 简单使用vue拖拽组件vue3-dnd

    项目中需要使用到拖拽,这里使用vue3-dnd来满足需求 这里项目使用的vue3(使用js而非ts) 插件官网地址:Vue3 DnD 安装 然后在app.vue里面添加代码  通过DndProvider组件为项目提供拖拽功能  概念 项目item和类型:被拖拽的对象我们称呼为某种类型的项目,类型的作用是让放置目标

    2023年04月13日
    浏览(47)
  • 【Vue】vue3 v-draggable 拖拽指令封装

    需求:实现一个拖拽指令,可在父元素区域任意拖拽元素,同时如果传入的值为 father,则拖拽的时候以父元素为拖拽对象 思路: 1、设置需要拖拽的元素为absolute,其父元素为relative。 2、鼠标按下(onmousedown)时记录目标元素当前的 left 和 top 值。 3、鼠标移动(onmousemove)时计算每

    2024年02月16日
    浏览(34)
  • VUE3实现拖拽功能自定义指令

    1.首先创建一个js文件,命名为drag.js    注意看注释部分,对操作DOM块进行了不同需求的支持     可以只在移动头部时操作整个DOM,或者是否允许DOM元素移出屏幕都能实现 2.在main.js中引入drag.js 3.在你想使用的标签中添加 v-drag 即可实现拖动了  

    2024年02月14日
    浏览(48)
  • vue3拖拽布局+动态组件+自适应布局

    1.拖拽布局插件 Vue Grid Layout -️ 适用Vue.js的栅格布局系统 可拖动和可调整大小栅格布局的Vue组件。 https://jbaysolutions.github.io/vue-grid-layout/zh/ //在package.json中dependencies下添加下面插件库,并执行命令npm install  \\\"vue-grid-layout\\\": \\\"^3.0.0-beta1\\\",  2.拖拽页面代码 3.图表子组件代码

    2024年02月11日
    浏览(42)
  • vue3 + vuedraggable: ^4.1.0 实现列表拖拽

    这个案例是利用vuedraggable渲染动态组件, bug:拖拽失效   vue2是需要在component这个标签上v-for,vue3是不需要的

    2024年02月12日
    浏览(40)
  • vue3 图片放大缩小、拖拽功能(自定义指令)

    效果 自定义 拖拽指令 vDrag.js 参考来源 https://github.com/sunzsh 使用 自定义 拖拽指令 写法二 (带传参及回调写法) vDrag.js 使用 自定义 缩放指令 vWheelScale.js 根据项目需要 我指令加了 动态参数 及 回调函数 不需要自行修改 使用 自定义 缩放指令 写法二(带传参及回调写法)

    2024年02月01日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包