2.0.3 • Published 4 months ago

yoyoo-ddr-vue3-ts v2.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

English document

安装-vue 2 NPM Version

npm i yoyoo-ddr-vue2 --save

安装-vue 3 NPM Version

npm i yoyoo-ddr-vue3-ts --save
  • 注意:使用 ts 和 vue3.x 重构,之前的 yoyoo-ddr-vue3 是根据 vue2 的语法做了些兼容,不再维护了

安装-react NPM Version

npm i yoyoo-ddr-react --save

使用

Example

import DDR from 'yoyoo-ddr-vue3-ts'
import 'yoyoo-ddr-vue3-ts/dist/style.css'
import { defineComponent, ref } from 'vue'
import { TransformProps } from './yoyoo-ddr-vue3-ts/dist/type'

export default defineComponent({
  setup() {
    const t = ref<TransformProps>({ x: 100, y: 100, width: 100, height: 100, rotation: 0 })
    return () => {
      return (
        <div style={'width:100%;height:100%'}>
          <DDR
            axis="x"
            minHeight={20}
            minWidth={20}
            maxWidth={200}
            maxHeight={200}
            parent={true}
            grid={[10, 10]}
            v-model:value={t.value}
          >
            <div style={{ width: '100%', height: '100%', background: 'red' }}>
              <div>x= {t.value.x}</div>
              <div>y= {t.value.y}</div>
              <div>w= {t.value.width}</div>
              <div>h= {t.value.height}</div>
            </div>
          </DDR>
          <button onClick={() => (t.value.x += 100)}> to right</button>
        </div>
      )
    }
  },
})

特色

  • 轻量级,无任何依赖
  • 可配置拖拽、旋转、缩放、网格对齐、限制父元素内移动、固定坐标轴移动、等比例缩放

注意事项

  • 容器如果使用了 overflow scroll 也会导致组件拖拽时的位置错误

属性

名称类型默认值描述
draggablebooleantrue是否可拖拽
rotatablebooleantrue是否可旋转
resizablebooleantrue是否可缩放
activebooleantrue是否可用,
acceptRatiobooleanfalse纵横比,单词拼写错误。但是发现太晚了,所以就这样吧
parentbooleanfalse限制在父容器内拖拽,支持拖动和缩放,旋转角度大于 0 不会判断
resizeHandlerArray'tl','tm','tr','r','br','bm','l','bl'定义缩放控制点
handlerSizenumber11定义缩放控制点
minWidthnumber1可缩放的最小宽度
minHeightnumber1可缩放最小高度
maxWidthnumber100000000可缩放最大宽度
maxHeightnumber100000000可缩放最大高度
valueObject{x:0,y:0,width:100,height:100,rotation:0}位置,注意该参数并不是双向绑定的不支持 v-model,但能响应 value 的更新
gridArray1,1格式x,y,支持拖动和缩放对齐。只能为整数
axisString'xy'指定坐标轴拖动,默认 xy 都可以拖动,仅支持拖动
zoomNumber1父容器缩放,当拖拽元素的父元素使用 transform:scale 后,应该同步给此属性
idstringundefined数组方式渲染时增加的参数,提高性能
beforeActiveFunction()=> false数组方式渲染时增加的参数,当元素被点击时会调用该函数并传入 id
renderContentFunction()=> VNode数组方式渲染时增加的参数,用于渲染自定义子节点,如果是单个组件使用直接用 slot 就行了
preventbooleantrue是否阻止默认事件,默认为 true
stopbooleantrue是否阻止事件冒泡,默认为 true

自定义 class 样式

  • 拖动状态: ddr-ready-drag 鼠标按下,准备拖动时的 class。ddr-dragging 拖动时的 class
  • 缩放状态: ddr-ready-resize 鼠标按下,准备缩放时的 class。ddr-resizing 缩放时的 class
  • 旋转状态: ddr-ready-rotate 鼠标按下,准备旋转时的 class。ddr-rotating 旋转时的 class
  • 选中状态: active 组件选中时的 class

事件

拖拽、旋转、缩放时会触发一系列事件,该事件都会传入两个参数,第一个参数为原始的事件对象,第二个参数为当前组件的位置信息。

nameargs
dragstart(event,transform)=>{} :void 0
drag(event,transform)=>{} :void 0
dragend(event,transform)=>{} :void 0
rotatestart(event,transform)=>{} :void 0
rotate(event,transform)=>{} :void 0
rotateend(event,transform)=>{} :void 0
resizestart(event,transform)=>{} :void 0
resize(event,transform)=>{} :void 0
resizeend(event,transform)=>{} :void 0

链接

联系我

如果在使用该组件时遇到问题,可以加 QQ(2498683974)联系我。欢迎提出宝贵意见和建议

License

The MIT License (MIT). Please see License File for more information.

2.0.3

4 months ago

2.0.2

4 months ago

2.0.1

4 months ago

2.0.0

8 months ago

1.1.0

8 months ago