让页面中的DIV可以拖动(jQuery插件)
2012-05-26 15:43:31 来源:WEB开发网核心提示:用法:$(“#box”).easydrag();//给指定的标签绑定拖动效果,也可以是Class$(“#box”).setHandler(‘handler’);//指定触发拖动的元素,让页面中的DIV可以拖动(jQuery插件),handler是该
用法:
$(“#box”).easydrag();//给指定的标签绑定拖动效果,也可以是Class
$(“#box”).setHandler(‘handler’);//指定触发拖动的元素,handler是该元素的id,后面我们需要修改它
首先这个插件真的很好用(废话),短短2行代码就能让页面中的div动起来。但是如果要拖动很多div的时候
,我们还是要稍微做出修改才能正常使用。
首先我的弹窗div在弹出的时候是默认在页面正中的,但是要使用这个插件被拖动的div就要使
用”position:absolute”的属性定位,这让我们的居中非常困难。解决思路:在触发弹窗之前用js获取当前屏
幕的分辨率然后将div居中。
js代码:
{
var div_width=Number(jQuery(‘#box’).css(‘width’));
var sc_width=(Number(window.screen.width)/2-(div_width/2)); //div距离浏览器左边框的距离为屏幕宽
度的一半-div宽度的一半
jQuery(‘#box).css(‘left’,sc_width);
}
好了,初始化之后就是拖动了,如果需要拖动的div不多的话这样就可以了。但是我写的页面要拖动的div较多
,而且这个插件只能用id号给元素绑定触发拖动的属性,如果一个id一个id的绑定事件的话会造成代码冗余
。所以我们要修改一下源文件jquery.easydrag.handler.beta2.js:找到 function(handlerId) 这个函数,
将里面的$(“#”+handlerId)都改成$(“.”+handlerId)就可以了。好吧,这样就可以了,下面是实例,
<!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=gb2312" />
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="http://fromvega.com/code/easydrag/jquery.easydrag.handler.beta2.js"></script>
<script language="javascript">
jQuery(function(){
$("#box").easydrag();//给指定的标签绑定拖动效果,也可以是Class
$("#box").setHandler('handler');//指定触发拖动的元素,handler是该元素的id,后面我们需要修改它
})
</script>
<title>easydrag插件演示</title>
</head>
<body>
<div id="box" style="width:200px; height:200px;; background:#FF9900">
<div id="handler" style="background:#000000; width:100%; height:20px;" >拖动我</div>
</div>
</body>
</html>
赞助商链接
