<HTML>
<HEAD>
<TITLE> drag-and-drop </TITLE> with Google and Windows Live
<style type= "Text/css" >
Body
{
margin:10px;
}
#dragHelper
{
position:absolute;/* Important */
border:2px dashed #000000;
Background-color: #FFFFFF;
Filter:alpha (opacity=30);
}
. Normal
{
position:absolute;/* Important */
width:300px;
#height: 10px;
border:1px solid #666666;
Background-color: #FFFFFF;
}
. Over
{
position:absolute;/* Important */
width:300px;
#height: 10px;
border:1px solid #666666;
Background-color: #f3f3f3;
Filter:alpha (OPACITY=50);
}
. dragarea {
Cursor:move;
}
</style>
</HEAD>
<body oncontextmenu= "Window.event.returnvalue=false" >
<input type= "text" id= "evt" name= "Eventvalue" size= "+"/>
<div id= "DragHelper" style= "Display:none" ></div>
<div class= "Normal" overclass= "over" dragclass= "normal" >
<table width= "100%" >
<tbody>
<tr bgcolor= "#CCCCCC" bar= "yes" ><td><a href= "#" >BAIDU.COM</A></TD><TD dragArea= " Yes "class=" Dragarea ">........</td><td><a href=" # "
onclick= "OpenClose (This)" >-</a> x</td></tr>
<tr><td colspan= "3" > Address: Http://www.baidu.com</td></tr>
<tr><td colspan= "3" > Keywords: </td></tr>
<TR><TD colspan= "3" > Description: </td></tr>
</tbody>
</table>
</div>
<div class= "normal" overclass= "over" dragclass= "normal";
<table width= "100%";
<tbody>
<tr bgcolor= "#CCCCCC" bar= "yes" ><td> sina </td><td dragarea= "yes" class= "Dragarea" > </td><td><a href= "#" onclick= "OpenClose (This)" >-</a>
X</td></tr>
<tr><td colspan= "3" > Address: http://www.sina.com.cn</td></tr
<tr><td colspan= "3" > Keywords: </td></tr>
<tr><td colspan= "3" > Description: </TD ></tr>
</tbody>
</table>
</div>
<div class= "normal" overclass= "over" Dragclass= "Normal";
<table width= "100%";
<tbody>
<tr bgcolor= "#CCCCCC" bar= "yes" > <td> Good search </td><td dragarea= "yes" class= "Dragarea" >........</td><td><a href= "#" Onclick= "OpenClose (This)" >-</a>
X</td></tr>
<TR><TD colspan= "3" > Address:http://www.haosou.com</td></tr>
<TR><TD colspan= "3" > Keyword:</td></tr>
<TR><TD colspan= "3" > Description:</td></tr>
</tbody>
</table>
</div>
<div class= "Normal" overclass= "over" dragclass= "normal" >
<table width= "100%" >
<tbody>
<tr bgcolor= "#CCCCCC" bar= "yes" ><td>qq</td><td dragarea= "yes" class= "Dragarea"; </td><td><a href= "#" onclick= "OpenClose (This)" >-</a>
X</td></tr>
<TR><TD colspan= "3" > Address:http://www.qq.com</td></tr>
<TR><TD colspan= "3" > Keyword:</td></tr>
<TR><TD colspan= "3" > Description:</td></tr>
</tbody>
</table>
</div>
<div>http://www.999jiujiu.com/</div>
</BODY>
<script language= "JavaScript" >
<!--
var dragobjs = [];//An array of elements that can be dragged
var dragobjtops = [];
var draghelper = document.getElementById ("DragHelper");//Position box when dragging
var dragobj = null;//Drag object element
var dragobjpos = 0;
var dragobjoffset = {left:0,top:0};//The original position of the object being dragged
var mouseindragobjoffset = {x:0,y:0};//The relative position of the mouse in the dragged object
var initheight = 40;
Number.prototype.nan0=function () {return IsNaN (this)? 0:this;}
function GetPosition (e) {//Gets the absolute position of the element relative to the document
var left = 0;
var top = 0;
while (e.offsetparent) {
Left + = E.offsetleft;
Top + = E.offsettop;
e = e.offsetparent;
}
Left + = E.offsetleft;
Top + = E.offsettop;
return {x:left, y:top};
}
function Mousecoords (EV) {//Get the absolute position of the mouse relative to the document
if (Ev.pagex | | ev.pagey) {
return {x:ev.pagex, y:ev.pagey};
}
return {
X:ev.clientx + Document.body.scrollleft-document.body.clientleft,
Y:ev.clienty + document.body.scrolltop-document.body.clienttop
};
}
function Getmouseoffset (target, Ev) {//Get relative position of mouse relative element
EV = EV | | window.event;
var elementpos = getPosition (target);
var mousepos = mousecoords (EV);
return {x:mousepos.x-elementpos.x, y:mousepos.y-elementpos.y};
}
function MouseDown (EV) {
EV = EV | | window.event;
target = Ev.srcelement | | Ev.target;
if (dragobj) {
Return
}
var dragarea = false;
if (Target.getattribute ("Dragarea")) {
Dragarea = true;
}
while (!target.getattribute ("Isdragobj")) {
if (target.tagname== "HTML")
Break
target = Target.parentnode;
}
if (Dragarea && target.getattribute ("Isdragobj")) {
Dragobj = target;
The purpose of the override is to have the current object in the top
Document.body.removeChild (dragobj);
Document.body.appendChild (dragobj);
Record the original position of the dragged object
Dragobjoffset.left = DragObj.style.left;
Dragobjoffset.top = DragObj.style.top;
Dragobj.classname = Dragobj.getattribute ("Overclass");
The relative position of the mouse in the dragged object
Mouseindragobjoffset = Getmouseoffset (dragobj, Ev);
DragHelper.style.left = DragObj.style.left;
DragHelper.style.top = DragObj.style.top;
DragHelper.style.width = Dragobj.offsetwidth;
DragHelper.style.height = Dragobj.offsetheight;
DragHelper.style.display = "";
Alert (dragobj.offsetwidth+ ":" +dragobj.clientwidth);
}
}
function mouseUp (EV) {
EV = EV | | window.event;
target = Ev.srcelement | | Ev.target;
if (dragobj) {
DragObj.style.left = DragHelper.style.left;
DragObj.style.top = DragHelper.style.top;
DragHelper.style.display = "None";
Dragobj.classname = Dragobj.getattribute ("Dragclass");
Dragobj = null;
}
}
function MouseMove (EV) {
EV = EV | | window.event;
if (dragobj) {
var mousepos = mousecoords (EV);
/*draghelper.style.left = Dragobjoffset.left;
DragHelper.style.top = Dragobjoffset.top;
DragHelper.style.width = Dragobj.offsetwidth;
DragHelper.style.height = Dragobj.offsetheight;
DragHelper.style.display = ""; */
var windowwidth = document.body.offsetwidth;//window width
var windowheight = document.body.offsetheight;//Window height
Drag the object should be in the current position
var dragobjleft = mousepos.x-mouseindragobjoffset.x;
var dragobjtop = Mousepos.y-mouseindragobjoffset.y;
Add judgment, or drag the object out of the browser window
if (dragobjleft >= 0 && dragobjleft <= windowwidth-dragobj.offsetwidth-20)
DragObj.style.left = Dragobjleft;
if (Dragobjtop >=0)
DragObj.style.top = Dragobjtop;
Repaint ();
}
}
Cloning objects
function Cloneobject (srcobj, destobj) {
Destobj = Srcobj.clonenode (true);
}
function makedraggable (Element) {
Element.setattribute ("Isdragobj", "Y");
}
function repaint () {
for (i=0; i<dragobjs.length; i++) {
if (dragobjs[i] = = dragobj) {
Dragobjpos = i;
Dragobjs[i] = DragHelper;
Break
}
}
if (dragobjpos>0 && parseint (dragObj.style.top) <parseint (dragobjs[dragobjpos-1].style.top)) {
Dragobjs[dragobjpos] = dragobjs[dragobjpos-1];
DRAGOBJS[DRAGOBJPOS-1] = DragHelper;
Dragobjpos = dragObjPos-1;
}
if (dragobjpos<dragobjs.length-1 && parseint (dragObj.style.top) >parseint (dragobjs[dragobjpos+1]. Style.top)) {
Dragobjs[dragobjpos] = dragobjs[dragobjpos+1];
DRAGOBJS[DRAGOBJPOS+1] = DragHelper;
Dragobjpos = Dragobjpos + 1;
}
Paintdragobjs ();
Dragobjs[dragobjpos] = dragobj;
}
function Paintdragobjs () {
var h = 40;
for (i=0; i<dragobjs.length; i++) {
Dragobjs[i].style.left = 20;
Dragobjs[i].style.top = h;
H + = Dragobjs[i].offsetheight + 10;
}
}
function OpenClose (obj) {
obj.innerhtml = obj.innerhtml== "-"? " +":"-";
while (obj.tagname! = "TBODY") {
obj = Obj.parentnode;
}
for (i=0; i<obj.childnodes.length; i++) {
if (Obj.childnodes[i].nodename = = "#text"
|| Obj.childnodes[i].getattribute ("Bar")) {continue;}
obj.childnodes[i].style.display=obj.childnodes[i].style.display== ""? " None ":";
}
Paintdragobjs ();
}
Document.onmousedown = MouseDown;
Document.onmouseup = mouseUp;
Document.onmousemove = MouseMove;
Window.onload = function () {
var objs = document.getElementsByTagName ("Div");
for (i=0; i<objs.length; i++) {
var item = Objs.item (i);
if (i==1) item.style.height=150;
if (Item.getattribute ("Overclass")) {
Makedraggable (item);
Dragobjs.push (item);
Item.style.left = 20;
Item.style.top = Initheight;
Dragobjtops.push (Initheight);
Initheight + = Item.offsetheight + 10;
}
}
DragHelper = document.createelement (' DIV ');
DragHelper.style.cssText = ' position:absolute;display:none; ';
Document.body.appendChild (DragHelper);
}
-
</SCRIPT>
</HTML>
Page module drag, JS imitation Google and Windows Live layer drag