JAVASCRIPT+DHTML实现表格拖动

王朝html/css/js·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

本文系作者原创,如要转贴,请保留以下信息:

http://blog.csdn.net/hunkdong/archive/2005/08/11/451169.aspx

自已做的,本来想在网上找前辈们做的,可是总找不到这种例子,要么找出来的太复杂,

要么就没法用,索性自己写了一个.看看还可以用!贡献出来,估计和我一样的菜鸟用的着!

代码如下:

<html>

<style>

body{

font-size:9pt;

}

table,th,td{

font-size:9pt;

}

.lsitTalbe{

table-layout:fixed;

width:30%;

border-collapse:collapse;

border-color:#507010;

color:#003300;

}

.pageda{

font-family:Webdings;

font-size:12pt;

color:#CCCCCC;

cursor:default;

}

.pageua{

font-family:Webdings;

font-size:12pt;

}

.even{

background:#e8f8d0;

}

.odd{

background:#f8fcf0;

}

.header{

background:a0dc40;

color:003300;

}

</style>

<head>

<TITLE>JAVASCRIPT+DHTML实现表格拖动DEMO</TITLE>

<META

NAME="Generator" CONTENT="EditPlus">

<META

NAME="Author" CONTENT="Hunk Dong">

</head>

<body>

<br>

JAVASCRIPT+DHTML实现表格拖动 按住&nbsp;<b>列1</b>&nbsp;即可拖动

<hr width="30%" align="left">

<table class="lsitTalbe" border="1" cellspacing="1" cellpadding="1" onmousedown="mousedown()" onmouseup="mouseup()" onmousemove="mousemove()" >

<tr class="header">

<th width="10%">列1</th>

<th width="10%">列2</th>

<th width="40%">列3</th>

<th width="40%">列4</th>

<tr>

<tr class="even" id="tr_1">

<TD style="cursor:move" title="按住可拖动">1</TD>

<TD ><INPUT class=inputStyle id=chkTaskItem_3 type=checkbox value=3 name=chkTaskItem></TD>

<TD ><INPUT class=inputStyle id=txtTaskName_3 type=txtTaskName size=25 name=txtTaskName value="test1"></TD>

<TD >test1</TD>

</tr>

<tr class="odd" id="tr_2">

<TD style="cursor:move" title="按住可拖动">2</TD>

<TD ><INPUT class=inputStyle id=chkTaskItem4 type=checkbox value=4 name=chkTaskItem></TD>

<TD ><INPUT class=inputStyle id=txtTaskName_4 type=txtTaskName size=25 name=txtTaskName value="test2"></TD>

<TD >test2</TD>

</tr>

<tr class="even" id="tr_3">

<TD style="cursor:move" title="按住可拖动">3</TD>

<TD ><INPUT class=inputStyle id=chkTaskItem_5 type=checkbox value=5 name=chkTaskItem></TD>

<TD ><INPUT class=inputStyle id=txtTaskName_5 type=txtTaskName size=25 name=txtTaskName value="test3"></TD>

<TD >test3</TD>

</tr>

</table>

</body>

</html>

<script language="javaScript">

var srcRowIndex;

var targetRowIndex;

var bDragMode ;

var objDragItem ;

var el;

function window.onload(){

initAdditionalElements();

}

function initAdditionalElements(){

objDragItem = document.createElement("DIV");

with(objDragItem.style){

backgroundColor = "buttonshadow";

cursor = "default";

position = "absolute";

filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=50)";

zIndex = 3001;

display ="none";

}

window.document.body.insertAdjacentElement("afterBegin", objDragItem);

}

function mousedown(){

el = window.event.srcElement;

if(el==null||el.tagName!="TD") return false;

if(el.cellIndex!=0 || el.parentNode.rowIndex<2) return false;

srcRowIndex = el.parentElement;

bDragMode = true ;

if (objDragItem!=null){

with(objDragItem){

innerHTML = el.parentElement.innerHTML;

style.height = el.parentElement.offsetHeight;

style.width = el.parentElement.offsetWidth;

}

}

el.setCapture();

}

function mouseup(){

if(el==null || el.cellIndex!=0 || el.parentNode.rowIndex<2) return false;

targetRowIndex = el.parentElement;

srcRowIndex.swapNode(targetRowIndex);

bDragMode = false ;

objDragItem.style.display ="none";

}

function mousemove(){

el = window.event.srcElement;

window.event.cancelBubble = false;

cliX = window.event.clientX;

cliY = window.event.clientY;

if(bDragMode && objDragItem!=null){

with(objDragItem){

style.display ="";

style.posLeft = cliX +1;

style.posTop = cliY - offsetHeight/2;

}

}

}

</script>

直接Copy下来就可以用,欢迎大家一起讨论: dongpin9685@163.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航