Vue 用于可调整大小和可拖动元素的组件并支持冲突检测、元素吸附、元素对齐、辅助线
Vue 用于可调整大小和可拖动元素的组件并支持冲突检测、元素吸附、元素对齐、辅助线
VueDraggableResizable
当前主线已升级到 Vue 3.5+,并同步迁移到 Vite 5、Vitest 2、Storybook 8。
parent 现支持 Boolean | String,可直接传 CSS selectorw / h 支持 autox / y / w / h 属性设置无效问题activated 导致 transform 属性丢失问题minWidth / minHeight 动态改变activeOnTopselectOnContextMenurotateparent 传入 CSS 选择器Q 交流群:138146781
本组件基于 vue-draggable-resizable 进行二次开发。
之前这个 fork 主要维护冲突检测、吸附对齐、辅助线等增强能力。现在默认主线已经切换到 Vue 3,后续 README、示例和构建方式也都以 Vue 3 为准。
官方英文示例 | 本仓库 GitHub Pages 示例 | 自定义域名
说明:本仓库新增功能的演示主要在 Storybook 的
Advanced分类里查看。
npm install vue-draggable-resizable-gorkysimport { createApp } from 'vue'
import App from './App.vue'
import VueDraggableResizable from 'vue-draggable-resizable-gorkys'
import 'vue-draggable-resizable-gorkys/style.css'
const app = createApp(App)
app.component('vdr', VueDraggableResizable)
app.mount('#app')
README.md 默认文档已切换到 Vue 3 版本说明dist/VueDraggableResizable.css 改为 style.csslint、test、build、storybook、build-storybookhandleInfo类型: Object
必需: false
默认:
{
size: 8,
offset: -5,
switch: true
}当使用 transform: scale() 进行缩放操作时:
switch 控制 handle 是否保持视觉尺寸不变size 为 handle 大小offset 为 handle 位置偏移scaleRatio类型: Number
必需: false
默认: 1
用于修复在 transform: scale() 场景下,鼠标位置与拖拽/缩放位置偏移的问题。
isConflictCheck类型: Boolean
必需: false
默认: false
定义组件是否开启冲突检测。
snap类型: Boolean
必需: false
默认: false
定义组件是否开启元素对齐/吸附。
snapTolerance类型: Number
必需: false
默认: 5
当启用 snap 时,定义组件与元素之间的对齐距离,单位为像素。
parent类型: Boolean | String
必需: false
默认: false
用于限制组件拖拽/缩放边界:
true 时,限制在直接父元素内w / h类型: Number | String
必需: false
除数字外,也支持传入 auto,组件会按照内容尺寸初始化,后续手动缩放后再转为具体数值。
activeOnTop类型: Boolean
必需: false
默认: false
定义组件激活时是否自动提升到最前面。
selectOnContextMenu类型: Boolean
必需: false
默认: false
定义组件是否支持右键选中。
rotate类型: Number
必需: false
默认: 0
定义组件旋转角度,单位为度。
refLineParams参数: params
返回值为一个对象,包含 vLine 和 hLine,可用于自行渲染辅助线。
当前开发环境要求 Node.js
>= 20。
npm install
# lint
npm run lint
# unit / feature tests
npm test
# library build
npm run build
# storybook dev
npm run storybook
# storybook static build
npm run build-storybookBasic、Advanced、How To 分类The MIT License (MIT). Please see License File for more information.
No open issues yet, or sync has not completed.