0.0.7 • Published 5 months ago

es-drager-vue2 v0.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

ES Drager 拖拽组件

🌈介绍

基于 vue3.x + CompositionAPI + typescript + vite 的可拖拽、缩放、旋转的组件

  • 拖拽&区域拖拽
  • 支持缩放
  • 旋转
  • 网格拖拽缩放

综合案例

下面是基于 es-drager 实现的一个简单可视化拖拽编辑器

ES Drager Editor

相关文章

可拖拽、缩放、旋转组件实现细节

网格效果及使用方法

辅助线和撤销回退

元素组合与拆分

菜单操作栏、json数据导入导出

⚡ 使用说明

安装依赖

npm i es-drager

全局注册

import { createApp } from 'vue'
import App from './App.vue'

import 'es-drager/lib/style.css'
import Drager from 'es-drager'

createApp(App)
  .component('es-drager', Drager)
  .mount('#app')
  • 使用
<template>
  <es-drager>
    drager
  </es-drager>
</template>

组件中直接使用

<template>
  <Drager>
    drager
  </Drager>
</template>

<script setup lang='ts'>
import Drager from 'es-drager'
</script>

浏览器直接引入

直接通过浏览器的 HTML 标签导入 es-drager,然后就可以使用全局变量 ESDrager 了。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="https://unpkg.com/es-drager/lib/style.css">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <es-drager>drager</es-drager>
  </div>

  <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
  <script src="https://unpkg.com/es-drager"></script>
  <script>
    const { createApp } = Vue
    const app = createApp({})
    app.use(ESDrager)
    app.mount('#app')
  </script>
</body>
</html>

Drager API

Drager 属性

属性名说明类型默认
tagcomponent组件的is属性^stringdiv
width宽度^number100
height高度^number100
left横坐标偏移^number0
top纵坐标偏移^number0
angle旋转角度^number0
color颜色^string#3a7afe
resizable是否可缩放^booleantrue
rotatable是否可旋转^boolean-
boundary是否判断边界(最近定位父节点)^boolean-
disabled是否禁用^boolean-
minWidth最小宽度^number-
minHeight最小高度^number-
maxWidth最大宽度^number-
maxHeight最大高度^number-
selected控制是否选中^boolean-
checkCollision是否开启碰撞检测^boolean-
snapToGrid开启网格^boolean-
gridX网格X大小^number50
gridY网格Y大小^number50
scaleRatio缩放比^number1
disabledKeyEvent禁用方向键移动^boolean-
border是否显示边框^booleantrue
aspectRatio宽高缩放比^boolean-
equalProportion宽高等比缩放^boolean-
resizeList显示的缩放handle列表,top, bottom, left, right, top-left, top-right, bottom-left, bottom-right^[string[]]-

Drager 事件

事件名说明类型
change位置、大小改变^Function(dragData) => void
drag拖拽中^Function(dragData) => void
drag-start拖拽开始^Function(dragData) => void
drag-end拖拽结束^Function(dragData) => void
resize缩放中^Function(dragData) => void
resize-start缩放开始^Function(dragData) => void
resize-end缩放结束^Function(dragData) => void
rotate旋转中^Function(dragData) => void
rotate-start旋转开始^Function(dragData) => void
rotate-end旋转结束^Function(dragData) => void
  • dragData 类型
export type DragData = {
  width: number
  height: number
  left: number
  top: number
  angle: number
}

Drager 插槽

插槽名说明
default自定义默认内容
resize缩放handle
rotate旋转handle
0.0.5

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago