刚刚写的一个jquery的弹出层的插件
-
String.prototype.replaceAll=function(s1,s2){
-
returnthis.replace(newRegExp(s1,"gm"),s2);
- };
-
(function($){
-
-
-
var___win___=window.self;
-
var___self___=window.self;
-
var___id___="";
-
var___settings___={};
-
varisMouseDown=false;
-
varcurrentElement=null;
-
vardropCallbacks={};
-
vardragCallbacks={};
-
varbubblings={};
-
varlastMouseX;
-
varlastMouseY;
-
varlastElemTop;
-
varlastElemLeft;
-
vardragStatus={};
-
varholdingHandler=false;
-
$.getMousePosition=function(e){
-
varposx=0;
-
varposy=0;
-
if(!e)vare=window.event;
-
if(e.pageX||e.pageY){
- posx=e.pageX;
- posy=e.pageY;
- }
-
elseif(e.clientX||e.clientY){
- posx=e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;
- posy=e.clientY+document.body.scrollTop+document.documentElement.scrollTop;
- }
-
return{'x':posx,'y':posy};
- };
-
$.updatePosition=function(e){
-
varpos=$.getMousePosition(e);
-
varspanX=(pos.x-lastMouseX);
-
varspanY=(pos.y-lastMouseY);
-
var_top=(lastElemTop+spanY)>0?(lastElemTop+spanY):0;
-
var_left=(lastElemLeft+spanX)>0?(lastElemLeft+spanX):0;
-
$("#"+___id___,___win___.document).css("top",_top);
-
$("#"+___id___,___win___.document).css("left",_left);
- };
-
$.fn.ondrag=function(callback){
-
returnthis.each(function(){
-
dragCallbacks[this.id]=callback;
- });
- };
-
$.fn.ondrop=function(callback){
-
returnthis.each(function(){
-
dropCallbacks[this.id]=callback;
- });
- };
-
$.fn.dragOff=function(){
-
returnthis.each(function(){
-
dragStatus[this.id]='off';
- });
- };
-
$.fn.dragOn=function(){
-
returnthis.each(function(){
-
dragStatus[this.id]='on';
- });
- };
- $.extend({
- layerSettings:{
-
id:"layerdiv",
- target:window.self,
- width:220,
- height:220,
-
templete:'<divstyle="height:20px;width:@width@px;background-color:#777777;"><spanid="@moveid@"style="position:relative;left:0px;top:0px;height:20px;width:100px;"><spanid="@titleid@">@title@</span></span><spanclass="layerclose"style="position:relative;top:0px;float:right;right:20px;color:red;">close</span></div><divstyle="border:solid#ff00001px;width:@width@px;height:@height@px;"><divstyle="width:100%;height:100%;background-color:#ffffff;"id="@contentid@"></div></div>',
-
cssurl:'',
-
content:'',
-
title:'',
-
isbg:true,
- opacity:0.3
- },
-
layerSetup:function(settings){
- $.extend($.layerSettings,settings);
- ___settings___[settings.id]=settings;
- ___id___=settings.id;
- },
-
layershow:function(){
-
___win___=$.layerSettings.target==undefined||$.layerSettings.target==null?window.self:$.layerSettings.target;
-
varwin=$.layerSettings.target==undefined||$.layerSettings.target==null?window.self:$.layerSettings.target;
-
var__bw=$("body",win.document).width();
-
var__bh=$("body",win.document).height()>$(window).height()?$("body",win.document).height():$(window).height();
-
var_width=$.layerSettings.width;
-
var_height=$.layerSettings.height;
-
if(___win___.document.getElementById(___id___))return;
-
var_moveid=___id___+"_move";
-
var_titleid=___id___+"_title";
-
var_contentid=___id___+"_content";
-
var_cssurl=$.layerSettings.cssurl;
-
varopacity=$.layerSettings.opacity;
-
(function(){
-
$("head",win.document).append('<linktype="text/css"href="'+_cssurl+'"rel="stylesheet"/>');
- })();
- __index=$.layermaxindex();
-
var__left=(__bw-_width)>0?(__bw-_width)/2:0;
-
var__top=100;
-
var__bgDiv='<divid="'+___id___+'_background"style="background:#000000;filter:alpha(opacity='+(opacity*100)+');opacity:'+opacity+';width:'+__bw+'px;height:'+__bh+'px;z-index:'+(__index++)+';position:absolute;left:0px;top:0px;"></div>';
-
if($.layerSettings.isbg)
- {
-
$("body",win.document).append(__bgDiv);
- }
-
$("body",win.document).append('<divid="'+___id___+'"style="z-index:'+__index+';position:absolute;left:'+__left+'px;top:'+__top+'px;"></div>');
-
var_templete=$.layerSettings.templete;
-
var__templete=_templete.replaceAll("@width@",_width).replaceAll("@height@",_height).replaceAll("@titleid@",_titleid).replaceAll("@contentid@",_contentid).replaceAll("@title@",jQuery.layerSettings.title).replaceAll("@moveid@",_moveid);
-
$("#"+___id___,win.document).append(__templete);
-
$("#"+_contentid,win.document).append($.layerSettings.content);
-
varself=window.self;
-
var___win=$.layerSettings.target.document;
-
varidd=___id___;
-
$(".layerclose",win.document).bind("click",function()
- {
- self.$.layerclose(idd,___win);
- });
-
$("#"+___id___,win.document).bind("click",function()
- {
-
varid=this.id;
- self.$.layerSetup(___settings___[id]);
-
self.$(this).css("z-index",$.layermaxindex());
- });
-
$(win.document,win).bind("click",function(e)
- {
-
varpos=self.$.getMousePosition(e);
- });
-
$(win.document,win).mousemove(function(e){
-
if(isMouseDown&&dragStatus[currentElement.id]!='false'){
- self.$.updatePosition(e);
-
if(dragCallbacks[currentElement.id]!=undefined){
- dragCallbacks[currentElement.id](e,currentElement);
- }
-
returnfalse;
- }
- });
-
$(win.document,win).mouseup(function(e){
-
if(isMouseDown&&dragStatus[currentElement.id]!='false'){
-
isMouseDown=false;
-
if(dropCallbacks[currentElement.id]!=undefined){
- dropCallbacks[currentElement.id](e,currentElement);
- }
-
returnfalse;
- }
- });
-
(function(){
-
bubblings[___id___]=true;
-
dragStatus[___id___]="on";
-
-
bubblings[this.id]=true;
-
dragStatus[_moveid]="handler";
-
$("#"+_moveid,win.document).css("cursor","move");
-
$("#"+_moveid,win.document).mousedown(function(e){
-
varid=this.id.replace("_move","");
- ___id___=id;
-
self.$("#"+id,win.document).css("z-index",$.layermaxindex());
- self.$.layerSetup(___settings___[id]);
-
if((dragStatus[___id___]=="off")||(dragStatus[___id___]=="handler"&&!holdingHandler))
-
returnbubblings["#"+___id___];
-
isMouseDown=true;
-
currentElement=self.$("#"+___id___);
-
varpos=self.$.getMousePosition(e);
- lastMouseX=pos.x;
- lastMouseY=pos.y;
- lastElemTop=win.document.getElementById(___id___).offsetTop;
- lastElemLeft=win.document.getElementById(___id___).offsetLeft;
- self.$.updatePosition(e);
-
holdingHandler=true;
- });
-
$("#"+_moveid,win.document).mouseup(function(e){
-
holdingHandler=false;
- });
-
- })();
- },
-
layerclose:function(__id,__win)
- {
-
$("#"+__id+"_background",__win).remove();
-
$("#"+__id,__win).remove();
- },
-
layermaxindex:function()
- {
-
var___index=0;
-
$.each($("*",___win___.document),function(i,n){
-
var__tem=$(n).css("z-index");
-
if(__tem>0)
- {
-
if(__tem>___index)
- {
- ___index=__tem+1;
- }
- }
- });
-
return___index;
- }
- });
- })(jQuery);
使用方法:
- $.layerSetup({
-
id:"弹出层的ID",
-
title:'弹出层的标题文字',
- target:在哪个目标柜架弹出层如window.parent,默认为window.self,
-
cssurl:'弹出层的CSS样式文件的地址',
-
content:'弹出的内容',
- isbg:是否显示一个遮照层,
-
templete:'为层设置布局模板如:<divclass="showwint_mini_title"><spanclass="showwint_mini_close_btn"><ahref="javascript:void(null);"class="layerclose"></a></span><spanclass="showwint_mini_title_content"id="@moveid@"><spanid="@titleid@"></span></span></div><divclass="showwint_mini_content"><divclass="showwint_mini_content_content"id="@contentid@"></div></div>',
- opacity:设置遮照层的透明度,
- width:宽,
- height:高
- });
- $.layershow();
其中布局模板中的"@titleid@"、"@moveid@"、"@contentid@"、"@width@"、"@height@"为模板中放置标题ID、拖动ID、内容ID、宽、高等,可以根据你自己设计的模板不同放在不同的位置.
分享到:
相关推荐
《jQuery弹出层插件深度解析》 在Web开发领域,jQuery库因其简洁的API和强大的功能而广受开发者喜爱。对于用户交互和界面展示,弹出层(Modal)是不可或缺的一部分,它能够吸引用户的注意力并提供额外的信息或操作...
标题中的“一款不错的Jquery弹出层插件”指的是一个基于JavaScript库JQuery设计的用于创建弹出对话框或模态窗口的插件。在网页交互设计中,弹出层通常用于显示通知、提示信息、表单或者进行确认操作,为用户提供一种...
**jQuery弹出层插件SexyLightBox详解** 在网页设计中,弹出层是一种常见的交互元素,用于在用户点击某个链接或按钮时显示一个浮动窗口,通常用来展示图片、视频或者详细信息。SexyLightBox是一款基于jQuery的弹出层...
jQuery弹出层插件在网页开发中非常常见,它们用于创建弹窗、模态对话框、图片预览等效果,增强了用户体验。以下是一些流行的jQuery弹出层插件及其特点: 1. **Thickbox**: Thickbox是一款轻量级的jQuery插件,用于...
在前端开发中,jQuery弹出层插件是用于创建弹窗效果的重要工具,它能够帮助开发者轻松实现模态对话框、提示信息、加载提示等交互功能。本篇将详细介绍jQuery弹出层插件,以及如何使用名为"Popup Div"的实例。 首先...
本文将详细介绍一个名为“jQuery弹出层插件”的工具,该插件以其轻量级、易于使用和高度可定制化的特点,深受开发者喜爱。 首先,我们了解下什么是jQuery。jQuery是由John Resig于2006年创建的一个JavaScript库,它...
首先,让我们深入了解一下jQuery弹出层插件的基本概念。弹出层通常包括模态对话框和非模态对话框两种类型。模态对话框会阻止用户与页面其他部分的交互,直到弹出层被关闭;而非模态对话框则允许用户在不关闭弹出层的...
《jQuery弹出层插件:实现简单遮罩弹出框效果》 在Web开发中,弹出层(Modal)是一种常见的交互元素,用于在用户与页面进行交互时提供额外的信息或者功能。jQuery作为一款强大的JavaScript库,提供了丰富的插件来...
标题中的“自己写的jquery 弹出层插件,可拖动”表明这是一个基于jQuery的自定义弹出框插件,具备拖动功能。在Web开发中,弹出层(也称为对话框或模态窗口)常用于显示警告、确认信息或者提供用户交互界面。这个插件...
【jQuery弹出层插件thickbox】是一种广泛使用的JavaScript库,它基于强大的jQuery框架,为网页添加了优雅且功能丰富的弹出层效果。 Thickbox主要用于创建全屏背景的图片查看器、轻量级的模态对话框以及iframe加载等...
本文将深入探讨标题所提及的"jQuery弹出层插件三种简单遮罩弹出框效果",以及如何利用jQuery实现这些效果。 首先,让我们了解什么是弹出层和遮罩弹出框。弹出层(Popup Layer)是一种常见的网页交互设计,当用户...
**jQuery弹出层插件详解** 在Web开发中,弹出层是一种常见的交互设计,用于显示重要的信息或者进行用户操作,如登录对话框、提示消息、表单提交等。jQuery作为一个轻量级、功能强大的JavaScript库,提供了丰富的...
jQuery弹出层插件Sexy LightBox是一款漂亮动感的lightbox弹出层插件sexy lightbox 2.3。
本文将深入探讨一款名为“20种弹出层”的jQuery+CSS3多功能弹出层插件v2.0.1,它以其丰富的样式和强大的功能,为开发者提供了极大的便利。 一、插件介绍 "20种弹出层"是一款基于jQuery和CSS3技术的弹出层插件,它...
超级漂亮的Jquery弹出层插件,可支持以下功能 1、触发响应事件 2、设置弹出层的标题 3、设置弹出层类型(text、容器ID、URL、Iframe) 4、弹出层的内容获取(text文本、容器ID名称、URL地址、Iframe的地址) 5、...
通常,一个jQuery弹出层插件会包含CSS文件(定义样式)、JavaScript文件(实现逻辑)以及示例HTML文件(展示用法)。这些文件可能分别命名为`jquery.popup.js`、`popup.css`和`demo.html`。 1. JavaScript实现: -...
jQuery弹出层插件PopupDiv-v1.0是一款基于JavaScript库jQuery开发的用户界面组件,主要用于在网页上创建各种类型的弹出窗口。弹出层在Web应用中非常常见,用于显示通知、对话框、表单、图片轮播等多种功能。PopupDiv...
**layer jQuery弹出层插件** 是一个广泛应用于前端开发中的工具,专为创建各种弹出层效果而设计。这款插件以其强大的功能和简洁的API接口,深受开发者喜爱,尤其在实现图片查看器(相册层)这样的交互式功能时,表现...
一款很好用的jquery弹出层插件,附带教程