支持
pc、移动、触摸屏
js文件下载
1、使用
<!-- 普通引入 -->
<script src="./simpleImgDraggable.js"></script>
// vue引入
import simpleImgDraggable from '../assets/js/simpleImgDraggable'
// ele 拖拽对象 类名、ID、元素对象(NodeList)
new simpleImgDraggable(ele, {
/**
* 触摸屏有效,是否复制一份拖拽元素,并且拖拽时复制元素
* 有些布局,有overflow: hidden,需要拖动跟随鼠标,所有需要复制一份并且顶置,不复制的话,拖不出去
* 简写 copyOverhead:true,
*/
copyOverhead: {
isCopy: false,//是否复制
copyCalss: '',//复制一份的 类名,用于有些需要修改样式
overheadPost: 'body',//定位在那个位置,类名
},
canDragInCon: [],//可拖入容器,类名或者 id,合集
//开始拖动事件,对应触摸拖拽中的
ondragstart: (index, e) => {},
//拖拽中,对应触摸拖拽中的
ondrag: (index, e) => { },
//拖动结束事件,对应触摸拖拽中的
ondragend: (index, e, dargInBoxIndex, dargInBox) => {},
//拖入容器触发一次事件
ondragenter: (dargInBoxIndex, dargInBox) => {},
//拖离容器触发一次事件
ondragleave: (dargInBoxIndex, dargInBox) => {},
//在容器中拖动触发事件
ondragover: (dargInBoxIndex, dargInBox) => { },
// 拖动进入容器成功返回事件
success: (index, e, dargInBoxIndex, dargInBox) => {}
});
3、参数说明
参数名 | 参数描述 |
---|---|
copyOverhead | {} |
copyOverhead.isCopy | 是否复制一份拖拽元素(触摸端没有鼠标拖拽灵活,需要复制一份,来达到任意拖拽,不然会被很多样式限制) |
copyOverhead.copyCalss | 复制的拖拽元素,添加的类名,因为复制后,可能样式不会继承,需要自己添加个类名 |
copyOverhead.overheadPost | 复制的拖拽元素,插入位置 |
canDragInCon | [],拖入容器类名、id 数组 |
3、事件返回 参数说明
参数名 | 参数描述 |
---|---|
index | 拖拽元素索引 |
e | 拖拽元素 |
dargInBoxIndex | 拖入容器索引(拖入的哪个容器的索引) |
dargInBox | 拖入容器元素 |
4、销毁,移除绑定事件,清空内部变量
let a = new simpleImgDraggable(****);
a.destroy();
标签:容器,实现,dargInBoxIndex,复制,copyOverhead,简单,拖拽,类名
From: https://www.cnblogs.com/tn666/p/17234660.html