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问题整理
Aug 16 Javascript
一个JQuery操作Table的代码分享
Mar 30 Javascript
mailto的使用技巧分享
Dec 21 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
jQuery实现的导航动画效果(附demo源码)
Apr 01 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
js实现导航栏中英文切换效果
Jan 16 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
详解自定义ajax支持跨域组件封装
Feb 08 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
Jul 24 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中执行系统外部命令
2006/10/09 PHP
初识PHP
2014/09/28 PHP
php使用cookie保存登录用户名的方法
2015/01/26 PHP
session 加入redis的实现代码
2016/07/15 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
全面理解Python中self的用法
2016/06/04 Python
Python给图像添加噪声具体操作
2019/03/03 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
python实现一个猜拳游戏
2020/04/05 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
毕业自我鉴定
2013/11/05 职场文书
个人近期表现材料
2014/02/11 职场文书
2015年推广普通话演讲稿
2015/03/20 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
青年联谊会致辞
2015/07/31 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python