• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >jquery > 分享jQuery网页元素拖拽插件

分享jQuery网页元素拖拽插件

作者:jerrylsxu 字体:[增加 减小] 来源:互联网

jerrylsxu 通过本文主要向大家介绍了jQuery网页元素拖拽,jQuery拖拽插件,jQuery元素拖拽等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

效果说明:配合已有CSS样式,载入插件后,网页元素可以随意在窗口内拖拽,设置了原位置半透明和拖拽半透明的效果选项,可根据需要选择。另外,当页面上有多个可拖拽元素时,可以载入另外一个用于设置z-index的插件,模拟Windows窗口点击置顶效果。


js/jquery.jLdraggable.js:

;(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拖拽特效

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享jQuery网页元素拖拽插件

相关文章

  • JQuery验证工具类搜集整理
  • 基于jQuery实现弹幕APP
  • jQuery+json实现动态创建复杂表格table的方法
  • jQuery数据类型小结(14个)
  • 多种方法实现360浏览器下禁止自动填写用户名密码
  • Jquery在指定DIV加载HTML示例代码
  • jQuery插件pagination实现无刷新分页
  • jQuery实现的简单折叠菜单(折叠面板)效果代码
  • jQuery的Each比JS原生for循环性能慢很多的原因
  • json格式的javascript对象用法分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 再说AutoComplete自动补全之实现原理
    • jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
    • jquery ready函数、css函数及text()使用示例
    • JQuery UI的拖拽功能实现方法小结
    • 使用jquery插件qrcode生成二维码
    • jQuery内存泄露解决办法
    • Jquery Easyui对话框组件Dialog使用详解(14)
    • jquery实现的回旋滚动效果完整实例【附demo源码下载】
    • 使用FlexiGrid实现Extjs表格效果方法分享
    • AJAX的跨域与JSONP(为文章自动添加短址的功能)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有