html部分

<div id="chenkbox">
<div id="tableSort">
<ol>
<li> 序列 </li>
<li> 名称 </li>
<li> 数量 </li>
<li> 单价(Q点) </li>
<li> 总计(Q点) </li>
</ol>
<ul>
<li>1</li>
<li>农场话费A</li>
<li>2</li>
<li>50</li>
<li>100</li>
</ul>
<ul>
<li>2</li>
<li>飞车道具C</li>
<li>1</li>
<li>80</li>
<li>80</li>
</ul>
<ul>
<li>3</li>
<li>空间K</li>
<li>1</li>
<li>120</li>
<li>120</li>
</ul>
<ul>
<li>4</li>
<li>农场狗粮C</li>
<li>4</li>
<li>60</li>
<li>240</li>
</ul>
<ul>
<li>5</li>
<li>音速种子</li>
<li>2</li>
<li>110</li>
<li>220</li>
</ul>
<ul>
<li>6</li>
<li>农场化肥D</li>
<li>5</li>
<li>60</li>
<li>300</li>
</ul>
<ul>
<li>7</li>
<li>AVA装扮C</li>
<li>1</li>
<li>300</li>
<li>300</li>
</ul>
<ul>
<li>8</li>
<li>三国道具C</li>
<li>15</li>
<li>60</li>
<li>900</li>
</ul>
<ul>
<li>9</li>
<li>DNF道具B</li>
<li>4</li>
<li>300</li>
<li>1200</li>
</ul>
<ul>
<li>10</li>
<li>农场化肥H</li>
<li>6</li>
<li>80</li>
<li>120</li>
</ul>
<ul>
<li>11</li>
<li>农场化肥B</li>
<li>1</li>
<li>80</li>
<li>80</li>
</ul>
<ul>
<li>12</li>
<li>Q宠元宝</li>
<li>100</li>
<li>1</li>
<li>100</li>
</ul>
<ul>
<li>13</li>
<li>三国道具K</li>
<li>9</li>
<li>20</li>
<li>180</li>
</ul> <div id="box"></div>
</div>
</div>

css部分

* {
margin:;
padding:;
}
body {
font-family: "microsoft yahei";
background-color: #eee;
user-select: none;
}
#chenkbox {
margin: 100px auto;
width: 800px;
position: relative; }
#tableSort{
border-right:#0066cc 1px solid;
border-bottom: #0066cc 1px solid;
height: 434px;
} li{
list-style: none;
}
#box {
position: absolute;
display: none;
background: #fff;
text-align: center;
top:;
background-color: #000;
background-color: rgba(0,0,0,0.8);
color: #fff;
height: 100%;
cursor: move;
}
#box p {
line-height:;
}
#chenkbox ol{
height: 30px;
line-height: 30px;
}
#chenkbox ul{
width: 100%;
height: 30px;
cursor: move;
line-height: 30px; }
#chenkbox li{
width: 19.87%;
float: left; border-top: #0066cc 1px solid;
border-left: #0066cc 1px solid;
text-align: center; }

js部分

var ochek=document.getElementById("chenkbox");
var ul=document.getElementsByTagName('ul');
var box=document.getElementById("box");
var arr=[];
for(var i=0;i<ul.length;i++){
ul[i].onmousedown=function(){
var e=e||window.event;
var w=this.offsetWidth;
var h=this.offsetHeight;
var t=ochek.offsetTop;
var st=this.offsetTop;
var ss=this.innerHTML;
_this=this;//鼠标按下时的ul
box.innerHTML=ss;
box.style.display="block";
box.style.width=w+"px";
box.style.height=h+"px";
box.style.top=st+"px";
for(var j=0;j<ul.length;j++){
arr.push(ul[j].offsetTop);//所有行的top值
}
document.onmousemove=function(e){
var e=e||window.event;
box.style.top=e.clientY-t+"px"; //移动时的top值
}
document.onmouseup=function(e){
var e=e||window.event;
var index='';
for(var j=0;j<arr.length;j++){
if(arr[j]<e.clientY-t){//得到当移动的top值大于ul的top值时的i
index=j;
}
}
_this.innerHTML=ul[index].innerHTML;//鼠标按下时的ul的innerHTML等于移动到的ul的innerHTML
ul[index].innerHTML= box.innerHTML;//移动到的ul的innerHTML等于box中的innerHTML
arr.splice(0,arr.length);//清空数组
box.style.display="none";
box.innerHTML='';
ul[i].onmousedown=null;
document.onmousemove=null; }
}
}

js表格拖拽的更多相关文章

  1. js 实现table表格拖拽和点击表头升降序排序

    js 实现table表格拖拽和点击表头升降序排序,写的比较乱,用的时候可以把其中的一些模块函数提取出来 样式,由于是可拖拽表格,所以样式 table tr th{cursor:move;} js实现 ...

  2. react拖拽(表格拖拽排序、普通拖拽排序以及树形拖拽排序)

    表格拖拽排序:组件地址:https://reactabular.js.org/#/drag-and-drop 拖动的排序是用React-DnD:React-DnD:http://react-dnd.g ...

  3. 实现Bootstrap表格拖拽

    实现Bootstrap表格拖拽: 需要引入jquery.min.js.bootstrap相关文件,以及jquery.dragsort-0.5.2.js 代码如下: <html> <h ...

  4. Js元素拖拽功能实现

    Js元素拖拽功能实现 需要解决的问题 最近项目遇到了一个问题,就是用户某个操作需要弹出一个自定义的内容输入框,但是有个缺点,当浏览太大的时候没办法点击确认和取消按钮,应为这个弹出框是采用绝对定位的,取 ...

  5. js之拖拽事件

    js之拖拽事件 api:https://www.runoob.com/jsref/event-ondrag.html 拖拽事件是js原生的事件,使用时在div上添加 draggable="t ...

  6. 根据HTML5的新方法 drag & drop 方法实现表格拖拽实例

    上一次学习了html5的drag和drop方法,传送门  就自己写了个例子加深自己对drag和drop的理解.不过一开始不是很简单,遇到了不少问题.还好网络万能的,什么都能查到,总算完成了. 说明和详 ...

  7. JS—实现拖拽

    JS中的拖拽示例:    1)实现拖拽思路:当鼠标按下和拖拽过程中,鼠标与拖拽物体之间的相对距离保持不变    2)实现拖拽遇到的问题:        问题1:当鼠标按下移动过快时,离开了拖拽的物体时 ...

  8. js鼠标拖拽

    html <div id="box"> </div> css ;;} #box{width:200px;height:200px;background:cy ...

  9. 原生Js实现拖拽(适用于pc和移动端)

    效果: HTML和CSS部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

随机推荐

  1. http和tcp/ip,socket的区别

    http协议和tcp/ip协议乍看起来,感觉是同一类的东西,其实不然,下面简单的说说他们的区别. http协议是应用层的一种数据封装协议,类似的还有ftp,telnet等等,而tcp/ip是数据传输层 ...

  2. 英语-汉语600句-会见:Making an Appointment/约会

    ylbtech-英语-汉语600句-会见:Making an Appointment/约会 1.返回顶部 1. Making an Appointment/约会1.喂,请问是哪位?Hello, who ...

  3. 008-python绘制五个五角星

    操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令 1. 运动命令: forward(degree)  #向前移动距离degree代表距离 backward(deg ...

  4. css3之弹性盒模型(Flex Box)

    CSS3 弹性盒子(Flex Box) 弹性盒子是 CSS3 的一种新的布局模式. CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时 ...

  5. 嘴巴题2 UVA10779 收集者的难题

    UVA10779 收集者的难题 题目: 有\(T(T\leq 20)\)组数据.\(Bob\)在与他的\(n−1(2\leq n\leq 10)个\)朋友交换糖纸,一共有\(m(5\leq m\leq ...

  6. HttpRequest 工具

    1.根据 url 和 encoding 获取当前url页面的 html 源代码 public static string GetHtml(string url, Encoding encoding) ...

  7. PHP搜索优化 sphinx 搭建测试

    安装.环境:win7 64位 1.下载sphinx文件包 下载地址:http://sphinxsearch.com/downloads/archive/ 2.解压到D:/sphinx.新建文件夹dat ...

  8. h5+css3+Jq

    1.侧边栏划出一个信息框 通常鼠标浮动侧边栏都会划出一个信息框,每个信息框距离侧边栏的距离是相等的,所以处理此问题的方法就是 量取信息框距离侧边栏的距离,信息框设置绝对定位,父元素设置相对定位之后,信 ...

  9. applyMiddleware源码中的闭包

    闭包都是个老掉牙的话题了,这次又提起,是因为重看Redux源码时发现了applyMiddleware里的用法很巧妙.我们先看一个简单的例子. var a = (num) => num + 1 v ...

  10. jnhs解决办法部署错误: 未能启动 Tomcat, 服务器端口 8084 已在使用中。

    当然重启电脑是不可能重启电脑的,这辈子都不会重启电脑 解决方法 1. win + R,输入cmd回车进打开命令行工具 2. 输入 netstat -ano|findstr 8084 查看占用8080端 ...