首页 > 其他分享 >拖拽简单实现

拖拽简单实现

时间:2023-03-19 22:45:23浏览次数:52  
标签:容器 实现 dargInBoxIndex 复制 copyOverhead 简单 拖拽 类名

支持

pc、移动、触摸屏
js文件下载

转载自简单图片拖拽-js插件,支持 pc、移动、触摸屏

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

相关文章

  • vue实现图片隐藏
    页面效果:单击图片时图片隐藏显示背景,再次点击重新显示图片。 实现流程:第一步:创建web项目,导入vue.js 第二步:实例化vue对象,在页面中引入<script>标签,并在<script>......
  • [Unraid 系列 v6.10+] 3 NGINX 反向代理 UNRAID webterminal 实现刷新异常处理
    说明我发现Nginx反向代理Unraid后,每分钟webterminal/ttyd/都会刷新一次,此前所有有关行为和显示都将清空。原因后来经过Chrome的DevTools检查查看Network项,......
  • JAVA -01(简单知识介绍)
    JAVA-01前期准备介绍1972年C诞生【两大问题:指针;内存管理】1982年C++诞生【面向对象;兼容C;图形领域和游戏,但是更复杂】1995年JAVA诞生【没有指针没有内存管理;面向对象......
  • Web API接口返回实现类集合的姿势了解
    大家好,我是沙漠尽头的狼。一.问题描述如下图,定义两个子类Student和Employ,都继承自抽象类PersonBase:publicabstractclassPersonBase{publicstringName{ge......
  • SpringBoot+Vue+EasyExcel实现excel简单导入导出
    1.先导入EasyExcel依赖<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.......
  • 简单明了的体会构建者模式
    我们由一个小小的Demo来引出主题,尽管这个Demo有点长~~,我相信还是值得你一看的!木兰诗中有:“雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雌雄?”对象之间的比较想必大家都很熟......
  • Power BI 实现未来几年天猫双十一销售额预测
    我们用PowerBI实现未来几年天猫双十一销售额预测,基于三次方程进行训练和预测。三次方程的公式如下:1. 2022年双十一预测值分布图基于三次方程预测2022年双十一销售额为73......
  • Python 学习11 协程实现并发
    Python中的协程  协程(co-routine,又称微线程、纤程)是一种多方协同的工作方式。协程不是进程或线程,其执行过程类似于Python函数调用,Python的asyncio模块实现的异步IO......
  • Java实现简易酒店管理系统
    实现订房退房查房退出四个基本功能酒店有三楼,每楼5个房间,房间号按照101,102,...201,202·有双人间,单人间,地铺间能实现订房退房查房等基本功能在控制台中实现,操作便捷一......
  • 你说熟悉MySQL事务,那来谈谈事务的实现原理吧!
    事务的四大特性:原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)。事务想要做到什么效果?无非是要做到可靠性以及并发处理:可靠性:数据库......