层拖动和定位

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
*{margin:0px; padding:0px;}
 body{position:relative; width:780px; height:800px; border:1px solid red}
.drag{width:200px; height:100px; border:1px solid #000;margin:20px; background:#fff}
.drag h1{margin:0px; padding:0px; font-size:12px; height:18px; line-height:18px; background:#E0E7F3; text-indent:20px;cursor:move;}
.center{ margin:200px; border:3px solid red}
</style>
<script type="text/javascript"></script>
<title>popper.w' drag class</title>
</head>
<body>
    <div class="drag" >
    <h1><strong>Class</strong></h1>
    </div>
    <div class="drag" >
    <h1>www.1.com</h1>
    </div>
    <div class="drag" >
    <h1><strong>www.2.com</strong></h1>
    </div>
    <div class="drag"><h1>1</h1></div>
    <div class="drag"><h1>2</h1></div>
    <div class="drag"><h1>3</h1></div>
    <div class="drag"><h1>4</h1></div>
</body>
</html>
<script type="text/javascript">
/*
Author  : c
Update  : 2000-1-1
Version : v2.0
*/
var DragZindexNumber=0;
function drag(obj){
var ox,oy,ex,xy,tag=0,mask=0;
if(tag==0){
obj.οnmοusedοwn=function(e)
    {  
        if(mask==1){return; }
        obj.style.zIndex=DragZindexNumber++;
        transp(obj,"start")
        tag=1;
        var e = e||window.event;   
        ex=getEventOffset(e).offsetX;
        ey=getEventOffset(e).offsetY;
        ox=parseInt(obj.offsetLeft);
        oy=parseInt(obj.offsetTop);
        tempDiv=document.createElement("div");   
        with(tempDiv.style)
            {
            width=obj.offsetWidth+"px";
            height=obj.offsetHeight+"px";
            border="1px dotted red";
            position="absolute";
            left=obj.offsetLeft+"px";
            top=obj.offsetTop+"px";
            zIndex=999;
            }
        document.body.appendChild(tempDiv);
        this.ele=tempDiv;
        fDragStart(tempDiv);
        document.body.οnmοusemοve=function(e){
        if(tag==1)
         {
            var e=e||window.event;
            tempDiv.style.left=parseInt(e.clientX)-ex+"px";
            tempDiv.style.top=parseInt(e.clientY)-ey+"px";
         }
        else{if(!tempDiv==null)tempDiv.parentNode.removeChild(tempDiv)}
        }
       tempDiv.οnmοuseup=function(e)
        {
        var e=e||window.event;
        fDragEnd(tempDiv);
        obj.style.position="absolute";
        movie(obj,parseInt(e.clientX)-ex-19,parseInt(e.clientY)-ey-20);
        tempDiv.parentNode.removeChild(tempDiv);
        tag=0;
        }
     }
 }
}
function movie(o,l,t){
  var a=1;
  mask=1;
  var ol=parseInt(o.offsetLeft);
  var ot=parseInt(o.offsetTop);
  var iTimer=setInterval(function(){
   if(a==10)
    {
        transp(o,"end");
        mask=0;
        clearInterval(iTimer);
     }
   o.style.left=ol+a*(l-ol)/10+"px";
   o.style.top=ot+a*(t-ot)/10+"px";
   a++;
},20);
}
function fCancleBubble(e)
{
 var e = window.event || e;
 if (e.preventDefault) e.preventDefault();
 else e.returnValue = false;
}
function transp(o,mode){
           if(mode=="start"){
         
            if(document.all){
                o.style.filter = "Alpha(Opacity=50)";
            }else{
                o.style.opacity = 0.5;
            }
            }
          else {
            if(document.all){
                o.style.filter = "Alpha(Opacity=100)";
            }else{
                o.style.opacity = 1;
            }
         
         
          }
}
function getOffset(evt)
{
  var target = evt.target;
  if (target.offsetLeft == undefined)
  {
    target = target.parentNode;
  }
  var pageCoord = getPageCoord(target);
  var eventCoord =
  {
    x: window.pageXOffset + evt.clientX,
    y: window.pageYOffset + evt.clientY
  };
  var offset =
  {
    offsetX: eventCoord.x - pageCoord.x,
    offsetY: eventCoord.y - pageCoord.y
  };
  return offset;
}
function getPageCoord(element)
{
  var coord = {x: 0, y: 0};
  while (element)
  {
    coord.x += element.offsetLeft;
    coord.y += element.offsetTop;
    element = element.offsetParent;
  }
  return coord;
}
function getEventOffset(evt)
{
  var msg = "";
  if (evt.offsetX == undefined)
  {
    var evtOffsets = getOffset(evt);
    msg={offsetX:evtOffsets.offsetX,offsetY:evtOffsets.offsetY};
  }
  else
  {
    msg={offsetX:evt.offsetX,offsetY:evt.offsetY};
  }
  return msg;
}
function fDragStart(XEle)
{
    switch(fCkBrs())
    {
         case 3:
             window.getSelection().removeAllRanges();
             break;
               
            default:
             XEle.setCapture();
             break;
    }
}
function fDragEnd(XEle)
{
    switch(fCkBrs())
    {
         case 3:
             window.getSelection().removeAllRanges();
             break;
               
            default:
             XEle.releaseCapture();
             break;
    }
}
function fCkBrs()
{
 switch (navigator.appName)
 {
  case 'Opera': return 2;
  case 'Netscape': return 3;
  default: return 1;
 }
}
var element=document.getElementsByTagName("div");
for(var i=0;i<element.length;i++){
  if(element[i].className=="drag"){
  drag(element[i])}
 
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值