• vue3 拖拽插件 Vue3DraggableResizable


    Vue3DraggableResizable 拖拽插件的官方文档

    一、Vue3DraggableResizable 的属性和事件

    1、Vue3DraggableResizable 的属性配置

    属性类型默认值功能描述示例
    initWNumbernull设置初始宽度(px)
    initHNumbernull设置初始高度(px)
    wNumber0组件的当前宽度(px),你可以使用“v-model:w”语法使它和父组件保持一致
    hNumber0组件的当前高度(px),你可以使用“v-model:h”语法使它和父组件保持一致
    xNumber0组件距离父容器的左侧的距离(px),你可以使用“v-model:x”语法使它和父组件保持一致
    yNumber0组件距离父容器的右侧的距离(px),你可以使用“v-model:y”语法使它和父组件保持一致
    minWNumber20组件的最小宽度(px)
    minHNumber20组件的最小高度(px)
    activeBooleanfalse组件当前是否处于活跃状态,你可以使用“v-model:active”语法使它和父组件保持一致
    draggableBooleantrue组件是否可拖动
    resizableBooleantrue组件是否可调整大小
    lockAspectRatioBooleanfalse该属性用来设置是否锁定比例
    disabledXBooleanfalse是否禁止组件在 X 轴上移动
    disabledYBooleanfalse是否禁止组件在 Y 轴上移动
    disabledWBooleanfalse是否禁止组件修改宽度
    disabledHBooleanfalse是否禁止组件修改高度
    parentBooleanfalse是否将组件的拖动和缩放限制在其父节点内,即组件不会超出父节点,默认关闭
    handlesArray[‘tl’, ‘tm’, ‘tr’, ‘ml’, ‘mr’, ‘bl’, ‘bm’, ‘br’]定义缩放的句柄(共八个方向):
    tl : 上左
    tm : 上中
    tr : 上右
    mr : 中左
    ml : 中右
    bl : 下左
    bm : 下中
    br : 下右
    classNameDraggableString‘draggable’自定义组件的类名,该类名在组件是“可拖动”时显示
    classNameResizableString‘resizable’自定义组件类名,该类名在组件是“可缩放”时显示
    classNameDraggingString‘dragging’定义组件在拖动时显示的类名
    classNameResizingString‘resizing’定义组件在缩放时显示的类名
    classNameActiveString‘active’定义组件在活跃状态下的类名
    classNameHandleString‘handle’定义缩放句柄的类名
    classNameHandleString‘handle’定义缩放句柄的类名

    2、Vue3DraggableResizable 的事件

    事件入参触发时机功能描述示例
    activated-组件从非活跃状态到活跃状态时触发-
    deactivated-组件从活跃状态到非活跃状态时触发-
    drag-start{ x: number, y: number }组件开始拖动时触发-
    dragging{ x: number, y: number }组件在拖动过程中持续触发-
    drag-end{ x: number, y: number }组件拖动结束时触发-
    resize-start{ x: number, y: number, w: number, h: number }组件开始缩放时触发-
    resizing{ x: number, y: number, w: number, h: number }组件在缩放过程中持续触发-
    resize-end{ x: number, y: number, w: number, h: number }组件缩放结束时触发-

    二、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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后在组件中的使用如下:

    <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>Testdiv>
        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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
  • 相关阅读:
    java在cmd中乱码的问题解决
    Stream流的应用
    k8s-List机制
    怎样在电脑上设置路由器的WiFi密码
    基于opencv,卡尺工具
    罗丹明PEG巯基,Rhodamine PEG Thiol,RB-PEG-SH
    【AIGC核心技术剖析】用于高效 3D 内容创建生成(从单视图图像生成高质量的纹理网格)
    DevExpress中文教程 - 如何在macOS和Linux (CTP)上创建、修改报表(上)
    ADO连接Access的前期绑定方法实例(下)
    【vue】vue 中插槽的三种类型:
  • 原文地址:https://blog.csdn.net/mChales_Liu/article/details/133964700