手动拖动table的行来进行的排序

本文介绍了一个使用JavaScript实现的简单表格拖拽排序功能。通过鼠标操作即可轻松调整表格行的位置,展示了基本的交互逻辑与实现方法。
  1. <html>  
  2.   
  3. <head>  
  4. <title>表格排序</title>  
  5.   
  6. <script language="javascript">  
  7. <!--   
  8. var beginMoving = false;   
  9.   
  10. function MouseDownToMove (obj)   
  11. {   
  12.     obj.style.zIndex = 1;   
  13.     obj.mouseDownY = event.clientY;   
  14.     obj.mouseDownX = event.clientX;   
  15.     beginMoving = true;   
  16.     obj.setCapture ();   
  17. }   
  18.   
  19. function MouseMoveToMove (obj)   
  20. {   
  21.     if(!beginMoving) return false;   
  22.   
  23.  for (i = 0; i < obj.cells.length; i ++)   
  24.      obj.cells [i].style.filter = "alpha(opacity = 70)";   
  25.     obj.style.top = (event.clientY - obj.mouseDownY);   
  26.     obj.style.left = (event.clientX - obj.mouseDownX);   
  27. }   
  28.   
  29. function MouseUpToMove (obj)   
  30. {   
  31.     if (!beginMoving) return false;   
  32.   
  33.     obj.releaseCapture ();   
  34.     obj.style.top = 0;   
  35.     obj.style.left = 0;   
  36.     obj.style.zIndex = 0;   
  37.     beginMoving = false;   
  38.   
  39.     var tempTop = event.clientY - obj.mouseDownY;   
  40.     var tempRowIndex = (tempTop - tempTop % 25) / 25;   
  41.   
  42.   
  43.     if (tempRowIndex + obj.rowIndex < 0 )   
  44.         tempRowIndex = -1;   
  45.     else   
  46.         tempRowIndextempRowIndex = tempRowIndex+obj.rowIndex;   
  47.   
  48.     if (tempRowIndex >= obj.parentElement.rows.length - 1)   
  49.         tempRowIndex = obj.parentElement.rows.length - 1;   
  50.   
  51.  for (i = 0; i < obj.cells.length; i ++)   
  52.      obj.cells [i].style.filter = "alpha(opacity = 100)";   
  53.     obj.parentElement.moveRow(obj.rowIndex, tempRowIndex);   
  54. }   
  55.   
  56. function FunTest ()   
  57. {   
  58.     for (i = 0; i < 8; i ++)   
  59.     {   
  60.         alert (document.getElementById ("TrID" + (i + 1)).rowIndex);   
  61.     }   
  62. }   
  63. //-->  
  64. </script>  
  65. </head>  
  66.   
  67. <body  bgcolor="cccccc">  
  68. 用鼠标移动TR<br>  
  69.  <table width="300" border="1" cellpadding="0" cellspacing="0">  
  70.   <tr id="TrID1" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  71.    <td bgcolor=blue>0</td><td bgcolor="#ffffff">0</td><td bgcolor="#ffffff">0</td>  
  72.   </tr>  
  73.   <tr id="TrID2" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  74.    <td bgcolor=black>1</td><td bgcolor="#ffffff">1</td><td bgcolor="#ffffff">1</td>  
  75.   </tr>  
  76.   <tr id="TrID3" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  77.    <td bgcolor=red>2</td><td bgcolor="#ffffff">2</td><td bgcolor="#ffffff">2</td>  
  78.   </tr>  
  79.   <tr id="TrID4" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  80.    <td bgcolor="#ffffff">3</td><td bgcolor="#ffffff">3</td><td bgcolor="#ffffff">3</td>  
  81.   </tr>  
  82.   <tr id="TrID5" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  83.    <td bgcolor="#ffffff">4</td><td bgcolor="#ffffff">4</td><td bgcolor="#ffffff">4</td>  
  84.   </tr>  
  85.   <tr id="TrID6" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  86.    <td bgcolor="#ffffff">5</td><td bgcolor="#ffffff">5</td><td bgcolor="#ffffff">5</td>  
  87.   </tr>  
  88.   <tr id="TrID7" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  89.    <td bgcolor="#ffffff">6</td><td bgcolor="#ffffff">6</td><td bgcolor="#ffffff">6</td>  
  90.   </tr>  
  91.   <tr id="TrID8" style='height:25;position:relative;' onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);'>  
  92.    <td bgcolor="#ffffff">7</td><td bgcolor="#ffffff">7</td><td bgcolor="#ffffff">7</td>  
  93.   </tr>  
  94.  </table>  
  95.  <table width="300" border="1" cellpadding="0" cellspacing="0">  
  96.   <tr>  
  97.    <td colspan="3" align="center">  
  98.     <input type="button" name="BtnTest" value=" 测试 " onclick="FunTest ()">  
  99.    </td>  
  100.   </tr>  
  101.   <tr><td>aa</td></tr>  
  102.  </table>  
  103. </body>  
  104. </html>  
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值