直接分几个部分来拖就行了不要在div上面在放几个div拖

解决方案 »

  1.   

    直接分几个部分来拖就行了不要在div上面在放几个div拖
      

  2.   

    直接分几个部分来拖就行了不要在div上面在放几个div拖
      

  3.   

    给你一个拖拽类/**************************************************
     * dom-drag.js
     * 03.25.2008
     **************************************************
     * 10.28.2001 - fixed minor bug where events
     * sometimes fired off the handle, not the root.
     **************************************************/var Drag = { obj : null, init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
    {
    o.onmousedown = Drag.start; o.hmode = bSwapHorzRef ? false : true ;
    o.vmode = bSwapVertRef ? false : true ; o.root = oRoot && oRoot != null ? oRoot : o ; if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
    if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
    if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
    if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px"; o.minX = typeof minX != 'undefined' ? minX : null;
    o.minY = typeof minY != 'undefined' ? minY : null;
    o.maxX = typeof maxX != 'undefined' ? maxX : null;
    o.maxY = typeof maxY != 'undefined' ? maxY : null; o.xMapper = fXMapper ? fXMapper : null;
    o.yMapper = fYMapper ? fYMapper : null; o.root.onDragStart = new Function();
    o.root.onDragEnd = new Function();
    o.root.onDrag = new Function();
    }, start : function(e)
    {
    var o = Drag.obj = this;
    e = Drag.fixE(e);
    var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
    var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
    o.root.onDragStart(x, y); o.lastMouseX = e.clientX;
    o.lastMouseY = e.clientY; if (o.hmode) {
    if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
    if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
    } else {
    if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
    if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
    } if (o.vmode) {
    if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
    if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
    } else {
    if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
    if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
    } document.onmousemove = Drag.drag;
    document.onmouseup = Drag.end; return false;
    }, drag : function(e)
    {
    e = Drag.fixE(e);
    var o = Drag.obj; var ey = e.clientY;
    var ex = e.clientX;
    var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
    var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
    var nx, ny; if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
    if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
    if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
    if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY); nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
    ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1)); if (o.xMapper) nx = o.xMapper(y)
    else if (o.yMapper) ny = o.yMapper(x) Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
    Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
    Drag.obj.lastMouseX = ex;
    Drag.obj.lastMouseY = ey; Drag.obj.root.onDrag(nx, ny);
    return false;
    }, end : function()
    {
    document.onmousemove = null;
    document.onmouseup   = null;
    Drag.obj.root.onDragEnd( parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
    parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
    Drag.obj = null;
    }, fixE : function(e)
    {
    if (typeof e == 'undefined') e = window.event;
    if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
    if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
    return e;
    }
    };
      

  4.   

    http://www.cnblogs.com/cloudgamer/archive/2008/07/21/1247267.html
    这里也有一个拖放程序
    参考一下
      

  5.   

    这个适合你,自己改改,功能是实现了的http://country.lvyou168.cn/flashwariii/3div.html
      

  6.   

    给你一个拖动布局自己研究, 不懂的地方可以m我<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:[email protected]****<a class='Channel_KeyLink' href='http://www.51it.org/school/tools/tongxun/qq/index.html'>QQ</a>: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; }
     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临客返汉晚点 中国<a class='Channel_KeyLink' href='http://www.51it.org/news/index.html'>新闻</a>网-湖北分社 - 所有 235 相关报道 &raquo;哈马斯已有总理人选                 解放日报报业集团 - 所有 489 相关报道 &raquo;陈水扁是两岸关系麻烦制造者 武汉晨报 - 所有 179 相关报道 &raquo;</td>   </tr>  </table> </td> <td width="50%">  <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>