--- title: Dragon sidebar_position: 99 --- > **@types** [IPublicModelDragon](https://github.com/alibaba/lowcode-engine/blob/main/packages/types/src/shell/model/dragon.ts)
> **@since** v1.0.0 ## 基本介绍 拖拽对象 ### 对应接口 ```typescript import { IPublicModelDragon } from '@alilc/lowcode-types'; ``` ### 支持版本 **@since** v1.1.0 ## 属性 ### dragging 是否正在拖动 ```typescript /** * is dragging or not */ get dragging(): boolean; ``` ## 方法 ### onDragstart 绑定 dragstart 事件 ```typescript /** * 绑定 dragstart 事件 * bind a callback function which will be called on dragging start * @param func * @returns */ onDragstart(func: (e: IPublicModelLocateEvent) => any): () => void; ``` ### onDrag 绑定 drag 事件 ```typescript /** * 绑定 drag 事件 * bind a callback function which will be called on dragging * @param func * @returns */ onDrag(func: (e: IPublicModelLocateEvent) => any): () => void; ``` ### onDragend 绑定 dragend 事件 ```typescript /** * 绑定 dragend 事件 * bind a callback function which will be called on dragging end * @param func * @returns */ onDragend(func: (o: { dragObject: IPublicModelDragObject; copy?: boolean }) => any): () => void; ``` ### from 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost ```typescript /** * 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost * set a html element as shell to dragon as monitoring target, and * set boost function which is used to transform a MouseEvent to type * IPublicTypeDragNodeDataObject. * @param shell 拖拽监听的区域 * @param boost 拖拽转换函数 */ from(shell: Element, boost: (e: MouseEvent) => IPublicTypeDragNodeDataObject | null): any; ``` ### boost 发射拖拽对象 ```typescript /** * 发射拖拽对象 * boost your dragObject for dragging(flying) * * @param dragObject 拖拽对象 * @param boostEvent 拖拽初始时事件 */ boost(dragObject: IPublicTypeDragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: Node | IPublicModelNode): void; ``` ### addSensor 添加投放感应区 ```typescript /** * 添加投放感应区 * add sensor area */ addSensor(sensor: any): void; ``` ### removeSensor 移除投放感应 ```typescript /** * 移除投放感应 * remove sensor area */ removeSensor(sensor: any): void; ```