jquery网页元素拖拽插件效果及实现
jquery网页元素拖拽插件效果及实现
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:;(function($){$.fn.extend({"jlzindex":function(){//用于判断和设置各个对...

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

复制代码 代码如下:;(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">

<div></div>

<div>无参数</div>

</div>

<div id="drag2">

<div></div>

<div>原位半透明</div>

</div>

<div id="drag3">

<div></div>

<div>拖拽半透明</div>

</div>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类