yoyoo-ddr
Draggable,resizable and rotatable component for vue.
Installation
npm i yoyoo-ddr --save
Usage
import DDR from 'yoyoo-ddr'
import 'yoyoo-ddr/dist/yoyoo-ddr.css'
export default {
data() {
return {
transform: { x: 100, y: 100, width: 100, height: 100, rotation: 0 },
}
},
render() {
return (
<DDR value={this.transform}>
<div style="width:100%;height:100%;background:red" />
</DDR>
)
},
}
Features
- Lightweight and no dependencies
- Draggable, resizable, rotatable, configurable
- Define handles for resizing
- Support aspect ratio
Tips
This component cannot be used normally in the following scenarios
transform:scale(2)
Props
| name | type | default | desc |
|---|---|---|---|
| draggable | boolean | true | Whether the component can be dragged |
| rotatable | boolean | true | Whether the component can be rotated |
| resizable | boolean | true | Whether the component can be resized |
| active | boolean | true | Whether the component is selected, it can only be operated after it is selected |
| acceptRatio | boolean | false | Set to true or hold down the shift key, it will scale proportionally |
| resizeHandler | Array | ['tl','tm','tr','r','br','bm','l','bl'] | Set the direction that can be resized |
| minWidth | number | 1 | Minimum width |
| minHeight | number | 1 | Minimum height |
| value | Object | {x:0,y:0,width:100,height:100,rotation:0} | Controls the position, size, and rotation of components |
Events
The parameter event is the component's native event object
The parameter transform is the position and rotation angle of the component
| name | args |
|---|---|
| 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 |