像www.chinaren.com一样,网页很多表格<table>、<div>
可以拖动位置,最大化,最小化,恢复.
相关代码已实现,不知道怎么最大化,最小化,恢复?
-------------------------------------------------------------------------
<style>
*{
font-size:12px
}
.dragTable{
font-size:12px;
border-top:1px solid #3366cc;
margin-bottom: 10px;
width:100%;
background-color:#FFFFFF;
}
.dragTR{
cursor:move;
color:#7787cc;
background-color:#e5eef9;
}
td{
vertical-align:top;
}
#parentTable{
border-collapse:collapse;
letter-spacing:25px;
}
</style>
<script>
var draged = false;
tdiv = null;
function dragStart(){
ao = event.srcElement;
//alert(ao.tagName);
if((ao.tagName == "TD")||(ao.tagName == "TR")){
ao = ao.offsetParent;
}else{
return;
}
draged = true;
tdiv = document.createElement("div");
tdiv.innerHTML = ao.outerHTML;
tdiv.style.display = "block";
tdiv.style.position = "absolute";
tdiv.style.filter = "alpha(opacity=70)";
tdiv.style.cursor = "move";
tdiv.style.width = ao.offsetWidth;
tdiv.style.height = ao.offsetHeight;
tdiv.style.top = getInfo(ao).top;
tdiv.style.left = getInfo(ao).left;
document.body.appendChild(tdiv);
lastX = event.clientX;
lastY = event.clientY;
lastLeft = tdiv.style.left;
lastTop = tdiv.style.top;
try{
ao.dragDrop();
}catch(e){}
}function draging(){//MOUSE Pos
if( !draged ){
return;
}
var tX = event.clientX;
var tY = event.clientY;
tdiv.style.left = parseInt(lastLeft) + tX - lastX;
tdiv.style.top = parseInt(lastTop) + tY - lastY;
for( var i = 0; i < parentTable.cells.length; i++ ){
var parentCell = getInfo(parentTable.cells[i]);
if( tX >= parentCell.left && tX <= parentCell.right && tY >= parentCell.top && tY <= parentCell.bottom){
var subTables = parentTable.cells[i].getElementsByTagName("table");
if( subTables.length == 0 ){
if(tX >= parentCell.left && tX <= parentCell.right && tY >= parentCell.top && tY <= parentCell.bottom){
parentTable.cells[i].appendChild(ao);
}
break;
}
for( var j = 0; j < subTables.length; j++ ){
var subTable = getInfo(subTables[j]);
if(tX >= subTable.left && tX <= subTable.right && tY >= subTable.top && tY <= subTable.bottom){
parentTable.cells[i].insertBefore(ao,subTables[j]);
break;
}else{
parentTable.cells[i].appendChild(ao);
}
}
}
}
}function dragEnd(){
if( !draged ){
return;
}
draged=false;
mm = ff(150,15);
}function getInfo(o){//get Pos.x,y
var to=new Object();
to.left = to.right = to.top = to.bottom = 0;
var twidth = o.offsetWidth;
var theight = o.offsetHeight;
while( o != document.body ){
to.left += o.offsetLeft;
to.top += o.offsetTop;
o = o.offsetParent;
}
to.right = to.left + twidth;
to.bottom = to.top + theight;
return to;
}function ff(aa,ab){//Set Pos.x,y
var ac = parseInt(getInfo(tdiv).left);
var ad = parseInt(getInfo(tdiv).top);
var ae = (ac - getInfo(ao).left)/ab;
var af = (ad - getInfo(ao).top)/ab;
return setInterval(
function(){
if( ab < 1 ){
clearInterval(mm);
tdiv.removeNode(true);
ao = null;
return
}
ab--;
ac -= ae;
ad -= af;
tdiv.style.left = parseInt(ac) + "px";
tdiv.style.top = parseInt(ad) + "px"
}
,aa/ab)
}function init(){//init
//alert(parentTable.cells.length);
for( var i = 0; i < parentTable.cells.length; i++ ){
var subTables = parentTable.cells[i].getElementsByTagName("table");
//alert(subTables.length);
for( var j = 0;j < subTables.length; j++ ){
//alert("i:"+i+"\nj:"+j+"\nTable:"+parentTable.id+"\nsubTables:"+subTables[j].id);
if( subTables[j].className != "dragTable" ){
//break;
continue;
}
//alert(subTables[j].rows[0].nodeName);
subTables[j].rows[0].className = "dragTR";
subTables[j].rows[0].attachEvent("onmousedown",dragStart);
subTables[j].attachEvent("ondrag",draging);
subTables[j].attachEvent("ondragend",dragEnd);
}
}
}
</script><body onLoad="init()">
<table border="0" cellpadding="0" cellspacing="10" width="100%" id="parentTable">
<tr>
<td width="25%" valgin="top">
<table border=0 class="dragTable" cellspacing="0" id="t1">
<tr>
<td>AJAX</td>
</tr>
<tr>
<td id="div1" ><jsp:include page="/query.jsp" /> <%//@include file="/query.jsp"%>
<tr>
</table>
<table border=0 class="dragTable" cellspacing="0" id="t2">
<tr>
<td>datagrid</td>
</tr>
<tr>
<td id="div2">datagrid</td>
<tr>
</table>
</td>
<td width="25%">
<table border=0 class="dragTable" cellspacing="0" id="t3">
<tr>
<td>C#.net</td>
</tr>
<tr>
<td id="div3">C#.net</td>
</tr>
</table>
<table border=0 class="dragTable" cellspacing="0" id="t4">
<tr>
<td>VB</td>
</tr>
<tr>
<td id="div4">VB</td>
</tr>
</table>
</td>
</tr>
</table>
<a href="#" onClick="div1.style.display='none'">隐藏</a>
</body>
可以拖动位置,最大化,最小化,恢复.
相关代码已实现,不知道怎么最大化,最小化,恢复?
-------------------------------------------------------------------------
<style>
*{
font-size:12px
}
.dragTable{
font-size:12px;
border-top:1px solid #3366cc;
margin-bottom: 10px;
width:100%;
background-color:#FFFFFF;
}
.dragTR{
cursor:move;
color:#7787cc;
background-color:#e5eef9;
}
td{
vertical-align:top;
}
#parentTable{
border-collapse:collapse;
letter-spacing:25px;
}
</style>
<script>
var draged = false;
tdiv = null;
function dragStart(){
ao = event.srcElement;
//alert(ao.tagName);
if((ao.tagName == "TD")||(ao.tagName == "TR")){
ao = ao.offsetParent;
}else{
return;
}
draged = true;
tdiv = document.createElement("div");
tdiv.innerHTML = ao.outerHTML;
tdiv.style.display = "block";
tdiv.style.position = "absolute";
tdiv.style.filter = "alpha(opacity=70)";
tdiv.style.cursor = "move";
tdiv.style.width = ao.offsetWidth;
tdiv.style.height = ao.offsetHeight;
tdiv.style.top = getInfo(ao).top;
tdiv.style.left = getInfo(ao).left;
document.body.appendChild(tdiv);
lastX = event.clientX;
lastY = event.clientY;
lastLeft = tdiv.style.left;
lastTop = tdiv.style.top;
try{
ao.dragDrop();
}catch(e){}
}function draging(){//MOUSE Pos
if( !draged ){
return;
}
var tX = event.clientX;
var tY = event.clientY;
tdiv.style.left = parseInt(lastLeft) + tX - lastX;
tdiv.style.top = parseInt(lastTop) + tY - lastY;
for( var i = 0; i < parentTable.cells.length; i++ ){
var parentCell = getInfo(parentTable.cells[i]);
if( tX >= parentCell.left && tX <= parentCell.right && tY >= parentCell.top && tY <= parentCell.bottom){
var subTables = parentTable.cells[i].getElementsByTagName("table");
if( subTables.length == 0 ){
if(tX >= parentCell.left && tX <= parentCell.right && tY >= parentCell.top && tY <= parentCell.bottom){
parentTable.cells[i].appendChild(ao);
}
break;
}
for( var j = 0; j < subTables.length; j++ ){
var subTable = getInfo(subTables[j]);
if(tX >= subTable.left && tX <= subTable.right && tY >= subTable.top && tY <= subTable.bottom){
parentTable.cells[i].insertBefore(ao,subTables[j]);
break;
}else{
parentTable.cells[i].appendChild(ao);
}
}
}
}
}function dragEnd(){
if( !draged ){
return;
}
draged=false;
mm = ff(150,15);
}function getInfo(o){//get Pos.x,y
var to=new Object();
to.left = to.right = to.top = to.bottom = 0;
var twidth = o.offsetWidth;
var theight = o.offsetHeight;
while( o != document.body ){
to.left += o.offsetLeft;
to.top += o.offsetTop;
o = o.offsetParent;
}
to.right = to.left + twidth;
to.bottom = to.top + theight;
return to;
}function ff(aa,ab){//Set Pos.x,y
var ac = parseInt(getInfo(tdiv).left);
var ad = parseInt(getInfo(tdiv).top);
var ae = (ac - getInfo(ao).left)/ab;
var af = (ad - getInfo(ao).top)/ab;
return setInterval(
function(){
if( ab < 1 ){
clearInterval(mm);
tdiv.removeNode(true);
ao = null;
return
}
ab--;
ac -= ae;
ad -= af;
tdiv.style.left = parseInt(ac) + "px";
tdiv.style.top = parseInt(ad) + "px"
}
,aa/ab)
}function init(){//init
//alert(parentTable.cells.length);
for( var i = 0; i < parentTable.cells.length; i++ ){
var subTables = parentTable.cells[i].getElementsByTagName("table");
//alert(subTables.length);
for( var j = 0;j < subTables.length; j++ ){
//alert("i:"+i+"\nj:"+j+"\nTable:"+parentTable.id+"\nsubTables:"+subTables[j].id);
if( subTables[j].className != "dragTable" ){
//break;
continue;
}
//alert(subTables[j].rows[0].nodeName);
subTables[j].rows[0].className = "dragTR";
subTables[j].rows[0].attachEvent("onmousedown",dragStart);
subTables[j].attachEvent("ondrag",draging);
subTables[j].attachEvent("ondragend",dragEnd);
}
}
}
</script><body onLoad="init()">
<table border="0" cellpadding="0" cellspacing="10" width="100%" id="parentTable">
<tr>
<td width="25%" valgin="top">
<table border=0 class="dragTable" cellspacing="0" id="t1">
<tr>
<td>AJAX</td>
</tr>
<tr>
<td id="div1" ><jsp:include page="/query.jsp" /> <%//@include file="/query.jsp"%>
<tr>
</table>
<table border=0 class="dragTable" cellspacing="0" id="t2">
<tr>
<td>datagrid</td>
</tr>
<tr>
<td id="div2">datagrid</td>
<tr>
</table>
</td>
<td width="25%">
<table border=0 class="dragTable" cellspacing="0" id="t3">
<tr>
<td>C#.net</td>
</tr>
<tr>
<td id="div3">C#.net</td>
</tr>
</table>
<table border=0 class="dragTable" cellspacing="0" id="t4">
<tr>
<td>VB</td>
</tr>
<tr>
<td id="div4">VB</td>
</tr>
</table>
</td>
</tr>
</table>
<a href="#" onClick="div1.style.display='none'">隐藏</a>
</body>
每个表格有传统Window最大化,最小化,恢复等按钮.
table1最大化后,占整个页面,table2到table4都隐藏,只看到table1的内容
恢复后,table1到table4的内容都能看到
即要实现
------------------------------------------------------------------
最大化--最小化
最大化--恢复基本大小最小化--最大化
最小化--恢复基本大小
恢复基本大小--最大化
恢复基本大小--最小化
------------------------------------------------------------
下面是隐藏
<a href="#" onClick="table1.style.display='none'">隐藏</a>
tr1.style.display='none';
td1.style.display='none';
隐藏后怎么恢复?