基于html5拖拽api实现列表的拖拽排序
基于html5拖拽api实现列表的拖拽排序
html代码:
<ul ondrop="drop_handler(event);" ondragover="dragover_handler(event);">
<li draggable="true" ondragstart="dragstart_handler(event);">1</li>
<li draggable="true" ondragstart="dragstart_handler(event);">2</li>
<li draggable="true" ondragstart="dragstart_handler(event);">3</li>
<li draggable="true" ondragstart="dragstart_handler(event);">4</li>
<li draggable="true" ondragstart="dragstart_handler(event);">5</li>
</ul>
js代码:
var uls = document.querySelector('ul');
var offsetTop = uls.offsetTop;
var clientX = '';
var clientY = '';
var n = 0;
function dragstart_handler(ev) {
      console.log("dragStart");
      ev.target.setAttribute('id', 'test1')
      ev.dataTransfer.setData("text/plain", ev.target.id);
}
function dragover_handler(ev) {
      ev.preventDefault();
      clientX = ev.clientX;
      clientY = ev.clientY;
      n = Math.round((clientY - offsetTop)/52)        //52代指拖拽元素的高度
}
function drop_handler(ev) {
      console.log("Drop");
      ev.preventDefault();
      var data = ev.dataTransfer.getData("text");
      console.log(n)
      var nodes = document.getElementById(data);
      uls.insertBefore(nodes, children(uls)[n]);
      nodes.removeAttribute('id');
      ev.dataTransfer.clearData();
}
function children(node){
      var tmp = node.childNodes;
      var arr = [];
      tmp.forEach(function(item){
           if(item.nodeType == 1){
               arr.push(item);
           }
      });
      return arr;
}
效果展示:

基于html5拖拽api实现列表的拖拽排序的更多相关文章
- 基于 HTML5 Canvas 的 3D 模型列表贴图
		少量图片对于我们赋值是没有什么难度,但是如果图片的量大的话,我们肯定希望能很直接地显示在界面上供我们使用,再就是排放的位置等等,这些都需要比较直观的操作,在实际应用中会让我们省很多力以及时间.下面这个 ... 
- 基于html5可拖拽图片循环滚动切换
		分享一款基于html5可拖拽图片循环滚动切换.这是一款支持手机端拖拽切换的网站图片循环滚动特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="s ... 
- 【javascript】谈谈HTML5: Web-Worker、canvas、indexedDB、拖拽事件
		前言:作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:<海贼王> ... 
- jQ插件--时间线插件和拖拽API
		这个时间轴是工作上用到的,自己写了一个, qq空间有时间轴的控件, 百度文库也有时间轴的控件: 百度的时间轴大概是这样的: 用户点击对应的锚链接, 那个三角会滚动, 然后左侧的界面也会滚动: 实际的 ... 
- HTML5 CSS3 经典案例:无插件拖拽上传图片 (支持预览与批量) (二)
		转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31513065 上一篇已经实现了这个项目的整体的HTML和CSS: HTML5 C ... 
- Resumable.js – 基于 HTML5 File API 的文件上传
		Resumable.js 是一个 JavaScript 库,通过 HTML5 文件 API 提供,稳定和可恢复的批量上传功能.在上传大文件的时候通过每个文件分割成小块,每块在上传失败的时候,上传会不断 ... 
- Android学习系列(11)--App列表之拖拽ListView(下)
		接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法. 在这个方法中我们主要是处理 ... 
- Android学习系列(10)--App列表之拖拽ListView(上)
		研究了很久的拖拽ListView的实现,受益良多,特此与尔共飨. 鉴于这部分内容网上的资料少而简陋,而具体的实现过程或许对大家才有帮助,为了详尽而不失真,我们一步一步分析,分成两篇文章. ... 
- Android学习系列--App列表之拖拽ListView(下)
		接着上篇Android学习系列(10)--App列表之拖拽ListView(上)我们继续实现ListView的拖拽效果. 7.重写onTouchEvent()方法. 在这个方法中我们主要是处理 ... 
随机推荐
- CSS里盒子模型中【margin垂直方向边界叠加】问题及解决方案
			边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容.补白.边框)重合在一起而形成一个单一边界. 两个或多个块级盒子的垂直相邻边界会重合. 如果都是正边界,结果的边界宽度是 ... 
- 解决Celery 在Windows中搭建和使用的版本
			官网:http://docs.celeryproject.org/en/latest/faq.html#does-celery-support-windows 描述如下:表示Celery 4.0版本以 ... 
- oracle 锁表解决方式
			/*查看被锁住的存储过程*/ SELECT * FROM V$DB_OBJECT_CACHE WHERE OWNER = 'APPADMIN' AND LOCKS != '0'; SELECT * F ... 
- 【请帮帮我】为什么www.52pjb.net总是不收录,最多只收录首页?
			做的好多个网站百度搜索都百度收录了,可是在其中一个一直不百度收录?http://www.52pjb.net,求大神帮忙看看,很着急很着急 
- git-bash用法详解
			目录 1. 开启Windows的 sshd 服务 1.1. ssh 高级配置 1.1.1. 生成秘钥 1.1.2. 添加或更改密码 1.1.3. 分发公钥 1.1.4. 允许以root身份ssh连接 ... 
- 综合练习: PIVOT、UNPIVOT、GROUPING SETS、GROUPING_ID_1
			综合练习: PIVOT.UNPIVOT.GROUPING SETS.GROUPING_ID 问题1:Desired output: empid cnt2007 cnt2008 cnt2009 ---- ... 
- Charles 功能详解
			Charles的功能有? 1 抓取http和https 网络封包(抓包) 2 Charles 的断点请求 通过断点修改参数 在指定接口打上断点 右键点击接口选择 breakpoints 然后 导航栏 ... 
- opencv C++极坐标变换
			#include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv ... 
- git merge整理
			========================================================== git bash merge 一.开发分支(dev)上的代码达到上线的标准后,要合 ... 
- 【String注解驱动开发】你了解@PostConstruct注解和@PreDestroy注解吗?
			写在前面 在之前的文章中,我们介绍了如何使用@Bean注解指定初始化和销毁的方法,小伙伴们可以参见<[Spring注解驱动开发]如何使用@Bean注解指定初始化和销毁的方法?看这一篇就够了!!& ... 
