UNPKG

@xiaohaih/drag

Version:

拖拽插件, 可通过指令或函数调用来拖拽元素移动

29 lines (26 loc) 1.28 kB
import type { EventOption } from '../core/types'; export interface ShadowFollowOption { /** 是否启用 */ enable?: boolean; /** 是否为固定定位元素 */ fixed?: boolean; /** 创建跟随元素, 默认克隆拖拽元素 */ createDom?: (option: InsetShadowFollowOption, opt: EventOption) => HTMLElement | Node; /** * 将克隆元素添加到页面中 * @default Function 默认添加到拖拽元素的父级 */ append?: (dom: HTMLElement | Node, opt: EventOption) => void; /** * 设置元素默认属性(外部传递了 createDom 该属性不生效, 需手动处理) * @default 默认设置不透明度, 不响应事件, 定位等样式 */ setDomAttrs?: (dom: HTMLElement | Node, option: InsetShadowFollowOption, opt: EventOption) => void; /** 设置克隆元素的类名(外部传递了 createDom 该属性不生效, 需手动处理) */ class?: string; /** 设置克隆元素的样式(外部传递了 createDom 该属性不生效, 需手动处理) */ style?: Partial<CSSStyleDeclaration>; } type RequiredKeys = 'createDom' | 'append' | 'setDomAttrs'; export type InsetShadowFollowOption = Omit<ShadowFollowOption, RequiredKeys> & Required<Pick<ShadowFollowOption, RequiredKeys>>;