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 相关文章推荐
网页开发中的容易忽略的问题 javascript HTML中的table
Apr 15 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
Dec 28 Javascript
最新28个很棒的jQuery 教程
May 28 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
jQuery unbind 删除绑定事件详解
May 24 Javascript
Javascript动画效果(3)
Oct 11 Javascript
如何防止INPUT按回车自动提交表单FORM
Dec 06 Javascript
深入理解Vue.js源码之事件机制
Sep 27 Javascript
动态加载、移除js/css文件的示例代码
Mar 20 Javascript
RequireJS用法简单示例
Aug 20 Javascript
Vue 实现从文件中获取文本信息的方法详解
Oct 16 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
用php解析html的实现代码
2011/08/08 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
php实现json编码的方法
2015/07/30 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
PHP7 新增功能
2021/03/09 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
python批量下载抖音视频
2019/06/17 Python
python如何把字符串类型list转换成list
2020/02/18 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
2020/11/30 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
Shopee新加坡:东南亚与台湾电商平台
2019/01/25 全球购物
个人评价范文分享
2014/01/11 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
python基础详解之if循环语句
2021/04/24 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
电脑关机速度很慢怎么办 提升电脑关机速度设置教程
2022/04/08 数码科技