当前位置: 首页 > article >正文

使用Vue3DraggableResizable组件实现拖拽拉伸

1:安装

yarn add vue3-draggable-resizable 或者npm install vue3-draggable-resizable

2:全局注册或者按需引入


//main.js
import Vue3DraggableResizable from 'vue3-draggable-resizable'
//default styles
import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'

createApp(App).use(Vue3DraggableResizable).mount('#app')

单页面组件里使用
import Vue3DraggableResizable from 'vue3-draggable-resizable'
//default styles
import 'vue3-draggable-resizable/dist/Vue3DraggableResizable.css'

import { DraggableContainer } from 'vue3-draggable-resizable';//需要限制范围时添加
这里是需要多个单独的拖拽且限制拖拽范围


const handleDragClick = e => {
  console.log(e, '事件');
};

 <div class="parent-wrap">
    <DraggableContainer :referenceLineColor="'white'">
      <Vue3DraggableResizable
        v-for="(item, index) in list"
        :key="index"
        :initW="310"
        :initH="420"
        v-model:x="item.x"
        v-model:y="item.y"
        v-model:w="item.w"
        v-model:h="item.h"
        v-model:active="item.active"
        :draggable="true"
        :resizable="true"
        :parent="true"
        :minW="420"
        :minH="310"
        classNameDraggable="draggable-wrap"
        @activated="handleDragClick('activated')"
        @deactivated="handleDragClick('deactivated')"
        @drag-start="handleDragClick('drag-start')"
        @resize-start="handleDragClick('resize-start')"
        @dragging="handleDragClick('dragging')"
        @resizing="handleDragClick('resizing')"
        @drag-end="handleDragClick('drag-end')"
        @resize-end="handleDragClick('resize-end')"
      >
        ///需要拖拽拉伸的组件内容
        <custom-components></custom-components>
      </Vue3DraggableResizable>
    </DraggableContainer>
  </div>

//自定义样式
.parent-wrap {
  position: absolute;
  width: 100%;
  height: 800px;
  top: 0px;
  left: 0px;
  user-select: none;
  overflow: hidden;
//隐藏边框和按钮
  .draggable-wrap.vdr-container.active {
    border: none;
    :deep(.vdr-handle) {
      opacity: 0;
    }
  }
}

官方使用案例

https://classic.yarnpkg.com/en/package/vue3-draggable-resizable


http://www.kler.cn/a/374952.html

相关文章:

  • 浏览器http缓存问题
  • Artec Space Spider助力剑桥研究团队解码古代社会合作【沪敖3D】
  • 虚拟机桥接模式
  • JVM学习-内存结构(一)
  • Windows配置IE浏览器不自动跳转到Edge
  • 如何增加多行内容到文件
  • Node.js与Python的交互:使用node-pyrunner模块
  • Python轴承故障诊断 (15)基于CNN-Transformer的一维故障信号识别模型
  • vue2 的12种 vs vue3 的9种组件通信整理
  • 【Wi-Fi】Wi-Fi 7(802.11be) Vs Wi-Fi 8 (802.11bn)
  • 「Mac畅玩鸿蒙与硬件19」鸿蒙UI组件篇9 - 自定义动画实现
  • 臻于智境 安全护航 亚信安全受邀出席新华三智算新品发布会
  • vue3二次封装UI组件
  • 深入理解 Dockerfile 和 docker-compose[实战篇]
  • 持续监控和反馈:工具与方法详解
  • Python数据类型:数字
  • 信息学奥赛复赛考点变化趋势分析:动态规划与数据结构成主流
  • .NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)
  • STM32之看门狗
  • C++学习路线(二十七)
  • 12. 内存管理
  • 修改Windows远程桌面3389端口
  • 一. nginx学习笔记 又长又臭篇幅
  • Go如何实现自旋锁
  • 【项目小技巧】【C++】 Debug 日志输出 调用者的函数名,所在文件名和行号
  • C语言学,标准库 <string.h>