`
redalx
  • 浏览: 181411 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

拖动层布局

阅读更多
<html>
<head>
<title>DRAG the DIV</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
*{font-size:12px}
.dragTable{
 font-size:12px;
 border-top:1px solid #3366cc;
 margin-bottom: 10px;
 width:100%;
 background-color:#FFFFFF;
}
td{vertical-align:top;}
.dragTR{
 cursor:move;
 color:#7787cc;
 background-color:#e5eef9;
 height:20px;
 padding-left:5px;
 font-weight:bold;
}
#parentTable{
 border-collapse:collapse;
 letter-spacing:25px;
}
</style>
<script defer>
/****JoeLee************E-MAIL:hktx@163.com****QQ:48293707*****11:09 2006-2-9******/
 var Drag={dragged:false,
  ao:null,
  tdiv:null,
dragStart:function(){
 Drag.ao=event.srcElement;
 if((Drag.ao.tagName=="TD")||(Drag.ao.tagName=="TR")){
  Drag.ao=Drag.ao.offsetParent;
  Drag.ao.style.zIndex=100;
 }else
  return;
 Drag.dragged=true;
 Drag.tdiv=document.createElement("div");
 Drag.tdiv.innerHTML=Drag.ao.outerHTML;
 Drag.ao.style.border="1px dashed red";
 Drag.tdiv.style.display="block";
 Drag.tdiv.style.position="absolute";
 Drag.tdiv.style.filter="alpha(opacity=70)";
 Drag.tdiv.style.cursor="move";
 Drag.tdiv.style.border="1px solid #000000";
 Drag.tdiv.style.width=Drag.ao.offsetWidth;
 Drag.tdiv.style.height=Drag.ao.offsetHeight;
 Drag.tdiv.style.top=Drag.getInfo(Drag.ao).top;
 Drag.tdiv.style.left=Drag.getInfo(Drag.ao).left;
 document.body.appendChild(Drag.tdiv);
 Drag.lastX=event.clientX;
 Drag.lastY=event.clientY;
 Drag.lastLeft=Drag.tdiv.style.left;
 Drag.lastTop=Drag.tdiv.style.top;
},
 draging:function(){//重要:判断MOUSE的位置
 if(!Drag.dragged||Drag.ao==null)return;
 var tX=event.clientX;
 var tY=event.clientY;
 Drag.tdiv.style.left=parseInt(Drag.lastLeft)+tX-Drag.lastX;
 Drag.tdiv.style.top=parseInt(Drag.lastTop)+tY-Drag.lastY;
 for(var i=0;i<parentTable.cells.length;i++){
  var parentCell=Drag.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(Drag.ao);
    }
    break;
   }
   for(var j=0;j<subTables.length;j++){
    var subTable=Drag.getInfo(subTables[j]);
    if(tX>=subTable.left&&tX<=subTable.right&&tY>=subTable.top&&tY<=subTable.bottom){
     parentTable.cells[i].insertBefore(Drag.ao,subTables[j]);
     break;
    }else{
     parentTable.cells[i].appendChild(Drag.ao);
    } 
   }
  }
 }
}
,
 dragEnd:function(){
 if(!Drag.dragged)return;
 Drag.dragged=false;
 Drag.mm=Drag.repos(150,15);
 Drag.ao.style.borderWidth="0px";
 Drag.ao.style.borderTop="1px solid #3366cc";
 Drag.tdiv.style.borderWidth="0px";
 Drag.ao.style.zIndex=1;
},
getInfo:function(o){//取得坐标
 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;
},
repos:function(aa,ab){
 var f=Drag.tdiv.filters.alpha.opacity;
 var tl=parseInt(Drag.getInfo(Drag.tdiv).left);
 var tt=parseInt(Drag.getInfo(Drag.tdiv).top);
 var kl=(tl-Drag.getInfo(Drag.ao).left)/ab;
 var kt=(tt-Drag.getInfo(Drag.ao).top)/ab;
 var kf=f/ab;
 return setInterval(function(){if(ab<1){
       clearInterval(Drag.mm);
       Drag.tdiv.removeNode(true);
       Drag.ao=null;
       return;
      }
     ab--;
     tl-=kl;
     tt-=kt;
     f-=kf;
     Drag.tdiv.style.left=parseInt(tl)+"px";
     Drag.tdiv.style.top=parseInt(tt)+"px";
     Drag.tdiv.filters.alpha.opacity=f;
    }
,aa/ab)
},
 inint:function(){//初始化
 for(var i=0;i<parentTable.cells.length;i++){
  var subTables=parentTable.cells[i].getElementsByTagName("table");
  for(var j=0;j<subTables.length;j++){
   if(subTables[j].className!="dragTable")break;
   subTables[j].rows[0].className="dragTR";
   subTables[j].rows[0].attachEvent("onmousedown",Drag.dragStart);
  }
 }
 document.onmousemove=Drag.draging;
 document.onmouseup=Drag.dragEnd;
}
//end of Object Drag
}
Drag.inint();
function _show(str){
 var w=window.open('','');
 var d=w.document;
 d.open();
 str=str.replace(/=(?!")(.*?)(?!")( |>)/g,"=\"$1\"$2");
 str=str.replace(/(<)(.*?)(>)/g,"<span style='color:red;'>&lt;$2&gt;</span><br />");
 str=str.replace(/\r/g,"<br />\n");
 d.write(str);
}
</script>
</head>
<body>
<table border="0" cellpadding="0" cellspacing="10" width="100%" height=500 id="parentTable">
<tr >
 <td width="25%" valgin="top">
  <table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td><b>GMAIL</b></td>
   </tr>
   <tr>
    <td>暂时无法显示GMAIL内容</td>
   <tr>
  </table><table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td>新浪体育</td>
   </tr>
   <tr>
    <td>解剖威队独门利器FW28 2万转引擎匹配超级变速器颁奖:辛吉斯欣喜能以冠军起步<br/> 印度搭档创下纪录法新社前瞻冬奥短道速滑:中韩唱主角 美加施冷箭</td>
   <tr>
  </table>
  <table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td>焦点</td>
   </tr>
   <tr>
    <td>京广线中断4小时20临客返汉晚点 中国新闻网-湖北分社 - 所有 235 相关报道 &raquo;哈马斯已有总理人选 
                解放日报报业集团 - 所有 489 相关报道 &raquo;陈水扁是两岸关系麻烦制造者 武汉晨报 - 所有 179 相关报道 &raquo;</td>
   <tr>
  </table>
 </td>
 <td width="25%">
  <table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td>中关村在线</td>
   </tr>
   <tr>
    <td>新年行情速递 双敏板卡低价推荐 终于等到了,映泰6600GT一降降一百 罗技G15游戏键盘热力促销,代购价仅529元 </td>
   <tr>
  </table></td>
 <td width="25%">
  <table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td>网易商业</td>
   </tr>
   <tr>
    <td>上海GDP增幅去年出现回落应对反倾销 中国鞋企联手对抗欧盟尹家绪操盘南方汽车 长安谋求曲线整体境外上市</td>
   <tr>
  </table>  <table border=0 class="dragTable" cellspacing="0">
   <tr>
    <td>黑可天下</td>
   </tr>
   <tr>
    <td>上海GDP增幅去年出现回落应对反倾销 中国鞋企联手对抗欧盟尹家绪操盘南方汽车 长安谋求曲线整体境外上市</td>
   <tr>
  </table>
 </td>
</tr>
</table>
<input type="button" value="SHOW" onClick="_show(document.documentElement.innerHTML)" />
</body>
</html> 
分享到:
评论

相关推荐

    仿Google小工具jQuery拖动特效适用于用户自定义拖动层布局.zip

    这个压缩包文件“仿Google小工具jQuery拖动特效适用于用户自定义拖动层布局.zip”显然包含了实现此类功能的代码资源,旨在帮助开发者创建具有Google小工具风格的拖放交互体验。下面我们将深入探讨jQuery拖动特效及其...

    仿3721拖动层网页布局

    3721网络实名是中国早期的互联网服务之一,其拖动层布局的设计思路对后续的Web开发产生了深远影响。 首先,我们要理解实现这种效果的核心技术是AJAX(Asynchronous JavaScript and XML),即异步JavaScript和XML。...

    使用Cookies保存拖动层位置-不使用数据库.rar

    使用Cookies保存拖动层位置-不使用数据库,JS Cookies的功能远不只这些,拖动层布局前几年非常流行,特别是一些博客网站用的比较多,为用户提供一个可自定义版块的功能,不过这些功能当然是需要保存的,要不用户下次...

    asp.net1.1 拖动层保存拖动后层信息

    在这个项目中,我们关注的是一个实现拖动层功能并且能够保存拖动后位置信息的解决方案。这个功能通常用于创建交互式用户界面,允许用户自定义布局或调整元素的位置。 首先,我们要理解"拖动层"的概念。在网页设计中...

    拖动层改变布局功能,这是个很实用的功能

    拖动层改变布局功能是一种常见的交互设计技术,广泛应用于网页和应用程序中,为用户提供直观的界面操作体验。这种功能允许用户通过鼠标拖动元素来调整界面元素的位置,从而改变整个布局,实现个性化设置或者根据需求...

    jQuery拖动任意层

    **jQuery拖动任意层** jQuery库为Web开发者提供了一种高效、简洁的方式来操作DOM(文档对象模型),并处理用户交互。在本示例中,我们将深入探讨如何利用jQuery实现网页上的层(通常指的是div元素)的拖动功能。这...

    div 拖动 拖动层

    根据提供的文件信息,本文将详细解析“div拖动”这一技术相关的知识点,包括其实现原理、应用场景以及具体的代码实现方式。 ### 一、基础知识:理解div拖动 #### 1.1 div元素简介 在HTML中,`div`是块级元素中最...

    仿Google小工具jQuery拖动特效.zip

    在网页设计中,用户自定义的拖动层布局是一个非常实用的功能,允许用户根据自己的偏好重新组织页面元素,如侧边栏、小部件或工具栏。这个特效的核心是利用jQuery的事件处理和DOM操作,来捕捉用户的鼠标动作,从而...

    鼠标拖动层 实例

    "鼠标拖动层"是一种这样的技术,它允许用户通过鼠标操作来移动页面上的某个元素,比如一个图像、一个区块或者一个窗口。这种功能常见于游戏、个人网站或者任何需要用户手动调整元素位置的场景。下面将详细探讨如何...

    Ajax拖动,拖拽,随意的布局页面

    "Ajax拖动,拖拽,随意的布局页面"是一个利用Ajax技术来实现的网页布局解决方案,它允许用户自由地通过拖动元素来调整页面布局,满足个性化的需求。这种技术广泛应用于桌面应用模拟、网页端的个人工作台、以及各种...

    各种js层特效,拖动层

    "各种js层特效,拖动层"这个主题主要涵盖了JavaScript在处理页面元素,特别是层(Layer)的效果以及拖放功能的应用。这里我们将深入探讨这些知识点。 **层特效(Layer Effects)** 层在网页设计中扮演着关键角色,...

    可以进行拖动的页面布局

    "可以进行拖动的页面布局"是一个创新的解决方案,它允许用户通过拖放操作来动态调整页面元素的位置,创建个性化的界面。这种技术常用于构建高度可定制的仪表板、应用框架或内容管理系统,给予用户更高的自由度和控制...

    jQuery创建div层自由拖动布局代码

    本篇将深入讲解如何利用jQuery实现div层的自由拖动以及尺寸调整功能,这对于创建楼宇平面图布局等场景尤为实用。 首先,我们需要引入jQuery库。在`index.html`文件中,添加以下代码来引入jQuery: ```html &lt;!...

    jQuery创建div层自由拖动布局代码.zip

    《jQuery实现div层自由拖动布局的代码解析与实践》 在网页开发中,动态交互效果的实现往往能提升用户体验,其中,div层的自由拖动布局是常见的一种交互方式。jQuery作为一款强大的JavaScript库,提供了简洁的API,...

    jQuery ui定位层带删除按钮拖动布局排序代码

    本篇文章将深入探讨如何利用jQuery UI实现定位层带删除按钮的拖动布局排序功能。 首先,jQuery UI中的`draggable`和`droppable`插件是实现拖动功能的核心。`draggable`使得元素可以被拖动,而`droppable`定义了可...

    网页设计层布局.ppt

    移动层时,可以使用鼠标来拖动层;对齐层时,可以使用对齐工具来对齐层。 在网页设计层布局技术中,layer的高级操作包括嵌套层的创建、层的继承和层的高级设置等。嵌套层的创建可以通过使用“插入”菜单命令或使用...

    jquery鼠标拖动层DIV源代码精简整理版

    本资源"jquery鼠标拖动层DIV源代码精简整理版"提供了一个轻量级的解决方案,用于实现HTML元素(特别是DIV)的拖动功能。下面我们将深入探讨这一主题。 首先,`div`是HTML中的一个块级元素,常用来组织页面布局。...

    JQUERY 动态添加层、拖动层、移除层实例

    本实例将深入探讨如何使用jQuery来实现动态添加层、拖动层以及移除层的功能,这对于创建交互式的Web应用程序至关重要。 ### 1. 动态添加层 动态添加层是指在网页运行时根据用户操作或特定条件创建新的HTML元素。...

Global site tag (gtag.js) - Google Analytics