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 相关文章推荐
jquery实现图片翻页效果
Dec 23 Javascript
使用jquery组件qrcode生成二维码及应用指南
Feb 22 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
Sep 23 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
基于javascript实现图片左右切换效果
Jan 25 Javascript
angularjs表格ng-table使用备忘录
Mar 09 Javascript
详解React中的组件通信问题
Jul 31 Javascript
React Native之ListView实现九宫格效果的示例
Aug 02 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
angular4+百分比进度显示插件用法示例
May 05 Javascript
vue 数据操作相关总结
Dec 17 Vue.js
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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
使一个函数作为另外一个函数的参数来运行的javascript代码
2007/08/13 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
nodejs中简单实现Javascript Promise机制的实例
2014/12/06 NodeJs
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
第四篇Bootstrap网格系统偏移列和嵌套列
2016/06/21 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
Node.js系列之安装配置与基本使用(1)
2019/08/30 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
通过cmd进入python的实例操作
2019/06/26 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
仓库组长岗位职责
2014/01/29 职场文书
经营理念口号
2014/06/21 职场文书
企业趣味活动方案
2014/08/21 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
家装业务员岗位职责
2015/04/03 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
go xorm框架的使用
2021/05/22 Golang
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle