JavascriptʵÏÖµÄÀàËÆGoogleµÄDivÍ϶¯Ð§¹û´úÂë

¸´ÖÆ´úÂë ´úÂëÈçÏÂ:

¡¡¡¡JScript Îļþ£º

¡¡¡¡//¼ì²âä¯ÀÀÆ÷ MSIE Firefox

¡¡¡¡var ie=false,moz=false;

¡¡¡¡(function()

¡¡¡¡{//check the browser

¡¡¡¡var userAgent=navigator.userAgent;

¡¡¡¡if(userAgent.indexOf("MSIE")!=-1)

¡¡¡¡ie=true;

¡¡¡¡else if(userAgent.indexOf("Firefox")!=-1)

¡¡¡¡moz=true;

¡¡¡¡})();

¡¡¡¡//ͨ¹ýID»ñµÃ¶ÔÏó

¡¡¡¡function $E_ID(idString)

¡¡¡¡{

¡¡¡¡return document.getElementById(idString);

¡¡¡¡}

¡¡¡¡//ͨ¹ýName»ñµÃ¶ÔÏó

¡¡¡¡function $Es_Tag(tagName)

¡¡¡¡{

¡¡¡¡return document.getElementsByTagName(tagName);

¡¡¡¡}

¡¡¡¡//»ñµÃ¶ÔÏó¾ø¶ÔλÖà obj.offsetparent

¡¡¡¡function $GetInfo(o)

¡¡¡¡{

¡¡¡¡var to=new Object();

¡¡¡¡to.left=to.right=to.top=to.bottom=0;

¡¡¡¡var twidth=o.offsetWidth;

¡¡¡¡var theight=o.offsetHeight;

¡¡¡¡while(o)

¡¡¡¡{

¡¡¡¡to.left+=o.offsetLeft;

¡¡¡¡to.top+=o.offsetTop;

¡¡¡¡o=o.offsetParent;

¡¡¡¡}

¡¡¡¡to.right=to.left+twidth;

¡¡¡¡to.bottom=to.top+theight;

¡¡¡¡return to;

¡¡¡¡}

¡¡¡¡//Êó±êµã»÷¶ÔÏóÈ··¢Ê¼þ

¡¡¡¡function $hitTest(obj,event)

¡¡¡¡{

¡¡¡¡obj=$GetInfo(obj);

¡¡¡¡var x=event.clientX;

¡¡¡¡var y=event.clientY;

¡¡¡¡if((x>=obj.left&&x<=obj.right)&&(y>=obj.top&&y<=obj.bottom))

¡¡¡¡¡¡return true;

¡¡¡¡else

¡¡¡¡¡¡return false;

¡¡¡¡}

¡¡¡¡function Drag(event)

¡¡¡¡{

¡¡¡¡this.dragged=false;

¡¡¡¡this.ao=null;

¡¡¡¡this.tdiv=null;

¡¡¡¡this.fixLeft=0;

¡¡¡¡this.fixTop=0;

¡¡¡¡this.lastX=event.clientX;

¡¡¡¡this.lastY=event.clientY;

¡¡¡¡Drag.mm=null;

¡¡¡¡this.dragStart=function(event)

¡¡¡¡{

¡¡¡¡this.ao=ie?event.srcElement:(moz?event.target:null);

¡¡¡¡if(ie)

¡¡¡¡document.body.onselectstart=function()

¡¡¡¡{

¡¡¡¡return false

¡¡¡¡}

¡¡¡¡if(moz&&this.ao.nodeType==3)

¡¡¡¡¡¡this.ao=this.ao.parentNode;

¡¡¡¡if(this.ao.tagName=="TD"||this.ao.tagName=="TR")

¡¡¡¡¡¡this.ao=this.ao.offsetParent.parentNode;

¡¡¡¡else

¡¡¡¡¡¡return;

¡¡¡¡if(this.ao.className!="dragdiv")

¡¡¡¡¡¡return;

¡¡¡¡this.tdiv=$E_ID("tmpdiv");

¡¡¡¡this.tdiv.style.visibility="visible";

¡¡¡¡this.tdiv.style.filter="alpha(opacity=70)";

¡¡¡¡if(ie)

¡¡¡¡¡¡this.tdiv.filters.alpha.opacity=70;

¡¡¡¡this.tdiv.style.opacity=0.7;

¡¡¡¡this.tdiv.style.zIndex=100;

¡¡¡¡this.tdiv.innerHTML=this.ao.innerHTML;

¡¡¡¡this.tdiv.style.width=this.ao.offsetWidth+"px";

¡¡¡¡this.tdiv.style.height=this.ao.offsetHeight+"px";

¡¡¡¡this.tdiv.style.top=$GetInfo(this.ao).top+"px";

¡¡¡¡this.tdiv.style.left=$GetInfo(this.ao).left+"px";

¡¡¡¡this.fixTop=parseInt($GetInfo(this.tdiv).top);

¡¡¡¡this.fixLeft=parseInt($GetInfo(this.tdiv).left);

¡¡¡¡this.dragged=true;

¡¡¡¡}

¡¡¡¡this.onDrag=function(event)

¡¡¡¡{

¡¡¡¡if((!this.dragged)||this.ao==null)return;

¡¡¡¡var tX=event.clientX;

¡¡¡¡var tY=event.clientY;

¡¡¡¡this.tdiv.style.left=parseInt(this.fixLeft+tX-this.lastX-document.body.scrollLeft)+"px";

¡¡¡¡this.tdiv.style.top=parseInt(this.fixTop+tY-this.lastY-document.body.scrollTop)+"px";

¡¡¡¡for(var m=0;m<$E_ID("root").rows.length;m++)

¡¡¡¡{

¡¡¡¡var rootCells=$E_ID("root").rows[m].cells;

¡¡¡¡for(var i=0;i<rootCells.length;i++)

¡¡¡¡{

¡¡¡¡if($hitTest(rootCells[i],event))

¡¡¡¡{

¡¡¡¡if(rootCells[i].hasChildNodes())

¡¡¡¡{

¡¡¡¡for(var j=0;j<rootCells[i].childNodes.length;j++)

¡¡¡¡{

¡¡¡¡if($hitTest(rootCells[i].childNodes[j],event))

¡¡¡¡{

¡¡¡¡rootCells[i].insertBefore(this.ao,rootCells[i].childNodes[j]);

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡if(j==rootCells[i].childNodes.length)

¡¡¡¡{

¡¡¡¡rootCells[i].appendChild(this.ao);break;

¡¡¡¡}

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡else

¡¡¡¡{

¡¡¡¡rootCells[i].appendChild(this.ao);

¡¡¡¡break;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡}

¡¡¡¡this.dragEnd=function()

¡¡¡¡{

¡¡¡¡if(this.dragged)

¡¡¡¡{

¡¡¡¡this.dragged=false;

¡¡¡¡Drag.mm=this.repos(150,15,this);

¡¡¡¡this.ao=null;

¡¡¡¡}

¡¡¡¡if(ie)document.body.onselectstart=function(){return true}

¡¡¡¡}

¡¡¡¡this.repos=function(aa,ab,obj)

¡¡¡¡{

¡¡¡¡if(ie)var f=obj.tdiv.filters.alpha.opacity;

¡¡¡¡else if(moz)var f=obj.tdiv.style.opacity*100;

¡¡¡¡var kf=f/ab;

¡¡¡¡var tl=parseInt($GetInfo(obj.tdiv).left);

¡¡¡¡var tt=parseInt($GetInfo(obj.tdiv).top);

¡¡¡¡var kl=(tl-$GetInfo(obj.ao).left)/ab;

¡¡¡¡var kt=(tt-$GetInfo(obj.ao).top)/ab;

¡¡¡¡return setInterval(function(){

¡¡¡¡if(ab<1)

¡¡¡¡{

¡¡¡¡clearInterval(Drag.mm);

¡¡¡¡obj.tdiv.style.visibility="hidden";

¡¡¡¡obj.tdiv.style.zIndex="";

¡¡¡¡return;

¡¡¡¡}

¡¡¡¡ab--;

¡¡¡¡tl-=kl;

¡¡¡¡tt-=kt;

¡¡¡¡f-=kf;

¡¡¡¡obj.tdiv.style.left=parseInt(tl)+"px";

¡¡¡¡obj.tdiv.style.top=parseInt(tt)+"px";

¡¡¡¡if(ie)obj.tdiv.filters.alpha.opacity=f;

¡¡¡¡else if(moz)obj.tdiv.style.opacity=f/100;

¡¡¡¡},aa/ab );

¡¡¡¡}

¡¡¡¡}

¡¡¡¡var tDrag=null;

¡¡¡¡function init(event)

¡¡¡¡{

¡¡¡¡// alert(event.target.innerHTML);

¡¡¡¡tDrag=new Drag(event);

¡¡¡¡tDrag.dragStart(event);

¡¡¡¡}

¡¡¡¡function move(event)

¡¡¡¡{

¡¡¡¡if(tDrag!=null)tDrag.onDrag(event);

¡¡¡¡}

¡¡¡¡function end()

¡¡¡¡{

¡¡¡¡if(tDrag!=null){

¡¡¡¡tDrag.dragEnd();

¡¡¡¡tDrag=null;

¡¡¡¡}

¡¡¡¡}

¡¡¡¡Asp.netÎļþ£º

¡¡¡¡<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

¡¡¡¡<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

¡¡¡¡<html xmlns="http://www.w3.org/1999/xhtml" >

¡¡¡¡<head >

¡¡¡¡<title>DivÍ϶¯</title>

¡¡¡¡<style type="text/css">

¡¡¡¡<!--

¡¡¡¡.dragHeader

¡¡¡¡{

¡¡¡¡background-color:#e5eef9;

¡¡¡¡border-top:1px solid #0066FF;

¡¡¡¡height: 20px;

¡¡¡¡cursor: move;

¡¡¡¡font-weight: bold;

¡¡¡¡}

¡¡¡¡body

¡¡¡¡{

¡¡¡¡font-family: Arial, Helvetica, sans-serif;

¡¡¡¡font-size: 12px;

¡¡¡¡}

¡¡¡¡#root td

¡¡¡¡{

¡¡¡¡vertical-align:top;

¡¡¡¡border:1px dotted #666666;

¡¡¡¡}

¡¡¡¡#tmpdiv

¡¡¡¡{

¡¡¡¡position: absolute;

¡¡¡¡}

¡¡¡¡.dragdiv

¡¡¡¡{

¡¡¡¡}

¡¡¡¡.style1

¡¡¡¡{

¡¡¡¡color: #FFFFFF;

¡¡¡¡font-weight: bold;

¡¡¡¡font-size: 36px;

¡¡¡¡}

¡¡¡¡-->

¡¡¡¡</style>

¡¡¡¡<script type="text/javascript" src="DivDrag.js"></script>

¡¡¡¡</head>

¡¡¡¡<body onMouseDown="init(event)" onMouseUp="end()" onMouseMove="move(event)" >

¡¡¡¡<script language="javascript" type="text/javascript" >

¡¡¡¡document.write("<div id='tmpdiv'><\/div>");

¡¡¡¡</script>

¡¡¡¡<table id="root" style="width:600px;height:300px" cellpadding="0" cellspacing="1" >

¡¡¡¡<tr style="height:150px;width:600px">

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡<div class="dragdiv" id="div1" >

¡¡¡¡<table style="height:100%;width:100%" border ="0">

¡¡¡¡<tr>

¡¡¡¡<td>

¡¡¡¡<input id="Button1" type="button" value="button" />

¡¡¡¡¿ÉÒÆ¶¯DIV1<br>

¡¡¡¡µã»÷¼´¿É¿ªÊ¼Í϶¯!

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡</table>

¡¡¡¡</div>

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡<div class="dragdiv" id="div2"

¡¡¡¡<table style="height:100%;width:100%" border ="0">

¡¡¡¡<tr>

¡¡¡¡<td>

¡¡¡¡<input id="Button2" type="button" value="button" />

¡¡¡¡¿ÉÒÆ¶¯DIV2<br>

¡¡¡¡µã»÷¼´¿É¿ªÊ¼Í϶¯!

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡</table>

¡¡¡¡</div>

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡<div class="dragdiv" id="div3"

¡¡¡¡<table style="height:100%;width:100%" border ="0">

¡¡¡¡<tr>

¡¡¡¡<td>

¡¡¡¡<input id="Button3" type="button" value="button" />

¡¡¡¡¿ÉÒÆ¶¯DIV3<br>

¡¡¡¡µã»÷¼´¿É¿ªÊ¼Í϶¯!

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡</table>

¡¡¡¡</div>

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡<tr style="height:150px;width:600px">

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡<tr style="height:150px;width:600px">

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡<td style="width:200px; height: 50px;">

¡¡¡¡</td>

¡¡¡¡</tr>

¡¡¡¡</table>

¡¡¡¡</body>

¡¡¡¡</html>