码迷,mamicode.com
首页 > 其他好文 > 详细

实现DIV拖动

时间:2016-03-17 14:24:41      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

Ajax的到来让B/S中的客户端中开发有火了一把,网上出现了很多优秀的开源框架和UI,比较著名了有prototype,YUI,GWT等,但很多时候发现这些东西很难用到你的系统之中,有时候你的系统仅仅需要实现一两个UI功能,如果把整个架构都引入进来是不现实的。所以很多时候是需要自己动手去做一些工作。
 
现在弹出窗口在B/S系统中很受青睐,它有美观性和易用性等诸多特点,比如我用的sina 博客登陆窗口就是应用了弹出窗口。以前我们做弹出窗口只用一个window.open()搞定,但后来发现这种窗口有很多弊端,首先是界面的美观性差,其次是与主页面的交互性差(只有一个window.opener引用主页面)。所以在开发过程中要自己动手做一些这方面的事情。
于是很多人选择了用Div来实现但出窗口功能,用css来控制外观。但是,这对开发人员提出更高要求:窗口的定位、拖动、与主页面的交互等。。。
 
昨晚自己也写了一个实现弹出窗口拖动的demo,就拿来贴一下:)
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style type="text/css">
.winFrame{
 position:absolute;
 border: outset gray 1px;
 height:400;
 width:500;
}
.winTitle{
 position:absolute;
 border-bottom:1px solid black;
 
 width:100%;
 height:20px;
 cursor:move;
}
.winContent{
 position:absolute;
 top:30px;
 width:100%
 padding: 10px;
 overflow: auto;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
  function beginDrag(elem,event){
 var deltaX = event.clientX - parseInt(elem.style.left);
 var deltaY = event.clientY - parseInt(elem.style.top);
 document.attachEvent("onmousemove",moveHandler);
 document.attachEvent("onmouseup",upHandler);
 event.cancelBubble = true;
 event.returnValue = false;
 function moveHandler(e){
   if(!e)
       e = window.event;
   elem.style.left = (e.clientX - deltaX) + "px";
   elem.style.top = (e.clientY - deltaY) + "px";
   e.cancelBubble = true;
 }
 function upHandler(e){
  if(!e)
        e = window.event;
     document.detachEvent("onmousemove",moveHandler);
     document.detachEvent("onmouseup",upHandler);
        e.cancelBubble = true;
 }
  }
</SCRIPT>
</HEAD>
   <div class="winFrame" style="left:50px;top:50px;">
       <div class="winTitle" onmousedown="beginDrag(this.parentNode,event);"> 标题 </div>
    <div class="winContent">
      内容
       </div>
   </div>
<BODY>
</BODY>
</HTML>

实现DIV拖动

标签:

原文地址:http://www.cnblogs.com/sherlockholmes/p/5286966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!