可拖拽、缩放、旋转组件之 - 生成辅助线和撤销回退功能

🌈介绍

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

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

这节主要来分享如何使用es-drager,根据现有功能实现拖拽时生成辅助线、撤销重做等画布常用功能

话不多说,咱们开始吧!

画布准备工作

这里只是一个简单的画布模板

画布数据源

import { ref, CSSProperties } from 'vue' // 组件类型 type ComponentType = { component: string // 内部组件名称,自定义组件需要提前全局注册 text?: string // 文本 width?: number height?: number top?: number left?: number angle?: number style?: CSSProperties // 样式 } interface EditorState { componentList: ComponentType[] } const data = ref<EditorState>({ componentList: [ { component: 'div', text: 'div1', width: 100, height: 100, left: 0, top: 0 }, { component: 'div', text: 'div2', width: 100, height: 100, top: 100, left: 100 } ] })

循环渲染组件到画布上

 

html

<Drager v-for="item in data.componentList" v-bind="item" > <component :is="item.component">{
  { item.text }}</component> </Drager>

生成辅助线

当拖拽元素时,通过比较拖拽元素与画布上其他元素的位置,当某个元素与拖拽元素的距离接近时,显示辅助线

拖拽元素在垂直方向上不同对齐方式

  1. 底对顶:拖拽元素的底部与对比元素的顶部对齐
  2. 底对底:拖拽元素的底部与对比元素的底部对齐
  3. 中对中:拖拽元素的中部与对比元素的中部对齐
  4. 顶对顶:拖拽元素的顶部与对比元素的顶部对齐
  5. 顶对底:拖拽元素的顶部与对比元素的底部对齐

看下图可以清晰的理解这几种对齐方式

拖拽元素在水平方向上不同对齐方式

  1. 右对左:拖拽元素的右侧与对比元素的左侧对齐
  2. 右对右:拖拽元素的右侧与对比元素的右侧对齐
  3. 中对中:拖拽元素的水平中心与对比元素的水平中心对齐
  4. 左对左:拖拽元素的左侧与对比元素的左侧对齐
  5. 左对右:拖拽元素的左侧与对比元素的右侧对齐<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值