jquery网页元素拖拽插件效果及实现


Posted in Javascript onAugust 05, 2013

jquery网页元素拖拽插件效果及实现

;(function($){
$.fn.extend({
"jlzindex" : function(){ //用于判断和设置各个对话框的z-index
var $dragindex = $(this);
var arrzindex = new array();
for(var i=0; i < $dragindex.length; i++){ //初始化数组元素值,并按拖拽项顺序设置z-index值
var zidxnum = 10000 - i - i -2;
arrzindex[i] = {"getid":"drag" + ($dragindex.length - i),"zidx":zidxnum};
$("#drag" + ($dragindex.length - i)).css("z-index",zidxnum);
}
$dragindex.mousedown(function(){
var i = 0;
var dindex = 0;
while(arrzindex[i]){ //找到当前点击项在数组里的下标
if(arrzindex[i].getid == $(this).attr("id")){ dindex = i;}
i++;
}
for(var i = dindex; i >=0; i--){ //把点击项移至数组第一位,其他项后移
if(i > 0){
arrzindex[i].getid = arrzindex[i-1].getid;
$("#" + arrzindex[i].getid).css("z-index",arrzindex[i].zidx);
} else{
arrzindex[i].getid = $(this).attr("id");
$("#" + arrzindex[i].getid).css("z-index",arrzindex[i].zidx);
}
}
});
},
"jldraggable" : function(mod){ //拖拽插件
var model = mod;
var draggable = false; 
var $drag = $(this);
$drag.find(".dragbar").mousedown(function(e){
draggable = true;
var mouseleft = e.pagex - $drag.find(".dragbar").offset().left; //鼠标在拖拽区域中的横向距离
var mousetop = e.pagey - $drag.find(".dragbar").offset().top; //鼠标在拖拽区域中的横向距离
if(model == "cfade"){ //原位置元素半透明
$drag.clone(false).appendto("body").addclass("dragshadow").fadeto(0,0.2).css("z-index",parseint($drag.css("z-index")) - 1);
} else if(model == "dfade"){ //跟随鼠标元素半透明
$drag.clone(false).appendto("body").addclass("dragshadow").css("z-index",parseint($drag.css("z-index")) - 1);
$drag.fadeto(0,0.2);
}
$(document).mousemove(function(e){
if(draggable){
var winwidth = $(window).width();
var winheight = $(window).height();
var dragleft = e.pagex - mouseleft;
var dragtop = e.pagey - mousetop;
//拖拽框不能超出窗口边界
if(dragleft < 0){dragleft = 0;}
if(dragleft + $drag.width() > winwidth){
dragleft = winwidth - $drag.width();
}
if(dragtop < 0){dragtop = 0;}
if(dragtop + $drag.height() > winheight){
dragtop = winheight - $drag.height();
}
$drag.css("left",dragleft + "px");
$drag.css("top",dragtop + "px");
} else{
return false;
}
});
});
$(document).mouseup(function(){
draggable = false;
$(".dragshadow").remove();
if(model == "dfade"){
$drag.fadeto(0,1); 
}
});
}
})
})(jquery)

index.html:
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript" src="js/jquery.jldraggable.js"></script> 
<script type="text/javascript">
$(document).ready(function(){
$("#drag1").jldraggable(); //无参数,没有影子
$("#drag2").jldraggable("cfade"); //cfade,定义原位置半透明阴影
$("#drag3").jldraggable("dfade"); //dfade,定义跟随鼠标的半透明阴影
$(".dragindex").jlzindex(); //多个窗口的z-index处理
});
</script>
<style type="text/css">
.dragtitle{
width:120px;
height:27px;
background:url(images/drag_01.jpg);
cursor:move;
}
.dragcontent{
width:120px;
height:73px;
background:url(images/drag_02.jpg);
line-height:73px;
text-align:center;
}
#drag1{
width:120px; 
position:absolute; 
left:10px; 
top:10px;
}
#drag2{
width:120px; 
position:absolute; 
left:90px; 
top:90px;
}
#drag3{
width:120px; 
position:absolute; 
left:170px; 
top:170px;
}
</style>
<div id="drag1" class="dragindex">
<div class="dragbar dragtitle"></div>
<div class="dragcontent">无参数</div>
</div>
<div id="drag2" class="dragindex">
<div class="dragbar dragtitle"></div>
<div class="dragcontent">原位半透明</div>
</div>
<div id="drag3" class="dragindex">
<div class="dragbar dragtitle"></div>
<div class="dragcontent">拖拽半透明</div>
</div>
Javascript 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
NiftyCube——轻松实现圆角边框
Feb 20 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
Aug 10 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
javascript的BOM
May 03 Javascript
jQuery超简单遮罩层实现方法示例
Sep 06 jQuery
JSON生成Form表单的方法示例
Nov 21 Javascript
Cocos2d实现刮刮卡效果
Dec 20 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 Javascript
微信小程序地图实现展示线路
Jul 29 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 #Javascript
js 判断计算字符串长度/判断空的简单方法
Aug 05 #Javascript
javascript显示用户停留时间的简单实例
Aug 05 #Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 #Javascript
JS字符串处理实例代码
Aug 05 #Javascript
[JSF]使用DataModel处理表行事件的实例代码
Aug 05 #Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 #Javascript
You might like
神族 PROTOSS 概述
2020/03/14 星际争霸
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
理清PHP在Linxu下执行时的文件权限方法
2017/06/07 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
vue axios用法教程详解
2017/07/23 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
2018/01/16 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python实现单链表的方法示例
2019/09/03 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
Python中pass的作用与使用教程
2020/11/13 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
英国复古和经典球衣网站:Vintage Football Shirts
2018/10/05 全球购物
烹饪自我鉴定
2014/03/01 职场文书
公司介绍信范文
2015/01/31 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
教师继续教育反思周记
2015/06/25 职场文书
总结会主持词
2015/07/02 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL