<2008年4月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

昵称:Agan@CN
园龄:4年1个月
粉丝:5
关注:0

搜索

 
 

最新随笔

随笔档案(15)

积分与排名

  • 积分 - 51758
  • 排名 - 2047

最新评论

阅读排行榜

推荐排行榜

Css For Draggable Panel
<style>
#draggable
{border:1px solid red;position:absolute;
top
:10px;left:10px;width:200px;height:140px;z-index:100px;}

#dragHeader
{cursor:move;
background-color
: #E0DDD5;
    filter
: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#E0DDD5', EndColorStr='#FFFFFF');
    text-align
: center;
    border-width
: 1px;
    border-style
: none;
    padding
: 1px 5px 2px 5px;
    text-transform
: capitalize;
}

#dragContent
{background-color: #FFFFFF;}
.active
{border-style:dashed;filter:alpha(opacity=20);cursor:not-allowed;}
.docked
{border-style:solid;filter:alpha(opacity=100)}
</style>
js文件Drag.js
 var dragingObj=null;//dragging object
 var mouseOffset;//store the offset position
 var initPos; //store the inital position of the dragging object
 /**********mouseMove******
hanle mouse move event
 ************************
*/

 
function mouseMove(evt)
 
{    
    evt 
= evt || window.event;
    
var mousePos = getMousePos(evt);    
    
if(dragingObj){
        dragingObj.style.position 
= 'absolute';
        dragingObj.style.top      
= mousePos.y - mouseOffset.y;
        dragingObj.style.left     
= mousePos.x - mouseOffset.x;        
        
return false;
    }


 }

/**********mouseDown******
hanle mouse down event
 ************************
*/

 
function mouseDown(evt)
 
{
    evt
=evt||window.event;    
    dragingObj
=evt.srcElement.parentElement;
    dragingObj.className
="active";
    mouseOffset
=getMouseOffset(dragingObj,evt);
    initPos 
= getPosition(dragingObj);
 }

/**********mouseUp******
hanle mouse up event
*************************
*/

 
function mouseUp(evt)
 
{
    
if(dragingObj)
    
{
        evt
=evt||window.event;            
        dragingObj.className
="docked";
        dragingObj
=null;
    }

 }

/**********getPosition******
get obj's position
*************************
*/

 
function getPosition(e)
 
{
    
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};
 }

/**********getMousePos******
get mouse's coordinate
*************************
*/

 
function getMousePos(evt)
 
{
    evt
=evt||window.event;    
    
return{
    x:evt.clientX
+document.body.scrollLeft-document.body.clientLeft,
    y:evt.clientY
+document.body.scrollTop-document.body.clientTop
    }
;
 }

 
/**********getMouseOffset******
get offset mouse moved
*************************
*/

 
function getMouseOffset(target, evt){
    evt 
= evt || window.event;

    
var docPos    = getPosition(target);
    
var mousePos  = getMousePos(evt);
    
return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function dragStart(obj)
{
    obj.onmousedown
=mouseDown;
}

 
/***add mouse event hander***/
 document.onmouseup 
= mouseUp;
 document.onmousemove
=mouseMove;

have a try,Drag following Div

drag me
this is a sample for draggable div
标签: css, div, Draggable
posted on 2008-04-25 22:27 Agan@CN 阅读(659) 评论(3) 编辑 收藏

FeedBack:
#1楼 2008-04-26 15:34 大犇[未注册用户]
Firefox 2 失败!

evt.srcElement has no properties
[Break on this error] dragingObj=evt.srcElement.parentElement;
http://www.cnblogs.com/Files/AganCN/Drag.js
Line 23

 回复 引用   
#2楼[楼主2008-04-26 19:33 Agan@CN      
@大犇
谢谢

 回复 引用 查看   
thank
 回复 引用