jQuery技术

基于jquery的拖动布局插件

字号+ 作者:H5之家 来源:H5之家 2017-04-09 12:06 我要评论( )

课工场KGC.CN在线教育是专注于企业人才培养的互联网教育平台,提供HTML5前端,互联网UIUE设计,Java大数据开发,云计算等互联网技术的IT培训教程,并通过遍及全国的IT

基于jquery的拖动布局插件,需要的朋友可以参考下。

(function($){  $.fn.lsMovePanel=function(){  var id=this.attr("id");  var X=Y=0;  var offsetX=offsetY=0;//绝对位置  var OldIndex=0;///存储原始索引  var Temp_Li="<li id=\"Temp_Li\" style=\"background-color:#FFFFFF;border-color:#FF023C\"></li>";  var Move_obj;///当前拖动的对象  $("#"+id+" li").each(function(i){  $(this).attr("open","0");  //鼠标点击  $(this).bind("mousedown",function(){  if(event.button==1 || event.button==0){$(this).attr("open","1");}  if($(this).attr("open")=="1"){  $(this).css({  cursor:"move",  opacity:"0.7"  });  X=event.clientX;  Y=event.clientY;  offsetX=$(this).offset().left;  offsetY=$(this).offset().top;  OldIndex=$(this).index();  $(this).css({  position:"absolute",  left:offsetX,  top:offsetY  });  $("#"+id+" li").each(function(i){  if(i==OldIndex){  $(this).after(Temp_Li);  }  })  }  });  //鼠标放开  $(this).bind("mouseup",function(){  if(event.button==1 || event.button==0){$(this).attr("open","0");}  if($(this).attr("open")=="0"){  $("#Temp_Li").before($(this));  $(this).animate({  left:$("#Temp_Li").offset().left,  top:$("#Temp_Li").offset().top,  },300,function(){  $("#Temp_Li").remove();  $(this).css({  cursor:"default",  opacity:"1",  position:"static"  });  });  $("#"+id+" li").each(function(i){  $(this).css({  "border-color":"#666666"  });  });  }  });  //移动  $(this).bind("mousemove",function(){  if($(this).attr("open")=="1"){  var current_X=current_Y=0;  current_X=offsetX+event.clientX-X;  current_Y=offsetY+event.clientY-Y;  $(this).css({  position:"absolute",  left:current_X,  top:current_Y  });  Move_obj=this;  $("#"+id+" li").each(function(i){  if(i!=OldIndex && $(this).attr("id")!="Temp_Li"){  var Deviation=0;  var Max_X=$(this).offset().left+$(this).width()-Deviation;  var Min_X=$(this).offset().left+Deviation;  var Max_Y=$(this).offset().top+$(this).height()-Deviation;  var Min_Y=$(this).offset().top+Deviation;  if((event.clientX  < Max_X) && (event.clientY+$(Move_obj).height() > Max_Y)  && (event.clientY+$(Move_obj).height() > Min_Y) &&  (event.clientX > Min_X) && (event.clientY < Max_Y) ){  $(this).css({  "border-color":"#FF7578"  });  //判断覆盖对象索引值在前还是后  if(OldIndex>$(this).index()){  $("#Temp_Li").before($(this));  $("#Temp_Li").remove();  $(this).before(Temp_Li);  }else{  $("#Temp_Li").after($(this));  $("#Temp_Li").remove();  $(this).after(Temp_Li);  }  }else{  $(this).css({  "border-color":"#666666"  });  }  }  })  }  });  });  }  })(jQuery);

调用例子:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">  <html xmlns="">  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>  <title></title>  <style>  #Panel{  width:630px;  height:auto;  padding:0px;  }  #Panel li{  float:left;  list-style:none;  width:300px;  height:100px;  margin:5px;  background-color:#D9F1FF;  border:1px dotted #666666;  text-align:center; position:static;  }  *{  font-size:12px;  }  </style>  </head>  <s cript src=""></s cript>  <s cript src=""></s cript>  <body>  <div style="margin-left:100px;">  <ul id="Panel">  <li style="background-color:#3399FF"></li>  <li style="background-color:#00CCFF"></li>  <li style="background-color:#CC9900"></li>  <li style="background-color:#FF6600"></li>  <li style="background-color:#FFCC99"></li>  </ul>  </div>  <s cript>  $("#Panel").lsMovePanel();  </s cript>  </body>  </html>



 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery index()方法使用代码

    JQuery index()方法使用代码

    2017-02-25 16:02

  • 【使用教程】jQuery的.live()和.die() 使用介绍

    【使用教程】jQuery的.live()和.die() 使用介绍

    2017-02-23 18:03

  • jQuery 核心

    jQuery 核心

    2016-08-29 15:01

网友点评