一个jquery的弹出层的插件查看

2016-02-19 16:06 19 1 收藏

图老师小编精心整理的一个jquery的弹出层的插件查看希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - Web开发 】

代码如下:
String.prototype.replaceAll = function(s1,s2){
return this.replace(new RegExp(s1,"gm"),s2);
};
(function($){
/*
* $-layer 0.1 - jquery pulg-in
*
* Copyright (c) 2008 King Wong

* $Date: 2008-09-28 $
*/
var ___win___ = window.self;
var ___self___ = window.self;
var ___id___ = "";
var ___settings___ = {};
var isMouseDown = false;

var currentElement = null;

var dropCallbacks = {};
var dragCallbacks = {};

var bubblings = {};

var lastMouseX;
var lastMouseY;
var lastElemTop;
var lastElemLeft;

var dragStatus = {};

var holdingHandler = false;

$.getMousePosition = function(e){
var posx = 0;
var posy = 0;

if (!e) var e = window.event;

if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (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) {
var pos = $.getMousePosition(e);

var spanX = (pos.x - lastMouseX);
var spanY = (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){
return this.each(function(){
dragCallbacks[this.id] = callback;
});
};
$.fn.ondrop = function(callback){
return this.each(function(){
dropCallbacks[this.id] = callback;
});
};

$.fn.dragOff = function(){
return this.each(function(){
dragStatus[this.id] = 'off';
});
};

$.fn.dragOn = function(){
return this.each(function(){
dragStatus[this.id] = 'on';
});
};
$.extend({
layerSettings:{
id:"layerdiv",
target:window.self,
width:220,
height:220,
templete:'div style="height:20px; width:px; background-color:#777777;"span id="" style="position:relative; left:0px; top:0px; height:20px; width:100px;"span id=""/span/spanspan class="layerclose" style="position:relative; top:0px; float:right; right:20px; color:red;"close/span/divdiv style="border:solid #ff0000 1px; width:px; height:px;"div style="width:100%; height:100%; background-color:#ffffff;" id=""/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;

var win = $.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;
var opacity = $.layerSettings.opacity;
(function(){
$("head",win.document).append('link type="text/css" href="'+_cssurl+'" rel="stylesheet" /');
})();
__index = $.layermaxindex();
var __left = (__bw - _width) 0 ? (__bw - _width)/2 : 0;
var __top = 100;
var __bgDiv = 'div id="'+___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('div id="'+___id___+'" style="z-index:'+__index+';position:absolute; left:'+__left+'px; top:'+__top+'px;"/div');
var _templete = $.layerSettings.templete;
var __templete = _templete.replaceAll("",_width).replaceAll("",_height).replaceAll("",_titleid).replaceAll("",_contentid).replaceAll("",jQuery.layerSettings.title).replaceAll("",_moveid);
$("#"+___id___,win.document).append(__templete);
$("#"+_contentid,win.document).append($.layerSettings.content);
var self = window.self;
var ___win = $.layerSettings.target.document;
var idd = ___id___;
$(".layerclose",win.document).bind("click",function()
{
self.$.layerclose(idd,___win);
});
$("#"+___id___,win.document).bind("click",function()
{
var id = this.id;
self.$.layerSetup(___settings___[id]);
self.$(this).css("z-index",$.layermaxindex());
});
$(win.document,win).bind("click",function(e)
{
var pos = 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);
}
return false;
}
});
$(win.document,win).mouseup(function(e){
if(isMouseDown && dragStatus[currentElement.id] != 'false'){
isMouseDown = false;
if(dropCallbacks[currentElement.id] != undefined){
dropCallbacks[currentElement.id](e, currentElement);
}
return false;
}
});
(function(){
bubblings[___id___] = true;

dragStatus[___id___] = "on";

//setHandler
bubblings[this.id] = true;

dragStatus[_moveid] = "handler";

$("#"+_moveid,win.document).css("cursor", "move");

$("#"+_moveid,win.document).mousedown(function(e){
var id = 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))
return bubblings["#"+___id___];

isMouseDown = true;
currentElement = self.$("#"+___id___);

var pos = 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;
});
//end setHandler
})();
},
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(__tem0)
{
if(__tem ___index)
{
___index = __tem + 1;
}
}
});
return ___index;
}
});
})(jQuery);

使用方法:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)
代码如下:
$.layerSetup({
id:"弹出层的ID",
title:'弹出层的标题文字',
target:在哪个目标柜架弹出层如window.parent,默认为window.self,
cssurl:'弹出层的CSS样式文件的地址',
content:'弹出的内容',
isbg:是否显示一个遮照层,
templete:'为层设置布局模板如:div class="showwint_mini_title"span class="showwint_mini_close_btn"a href="javascript:void(null);" class="layerclose"/a/spanspan class="showwint_mini_title_content" id=""span id=""/span/span/divdiv class="showwint_mini_content"div class="showwint_mini_content_content" id=""/div/div',
opacity:设置遮照层的透明度,
width:宽,
height:高
});
$.layershow();

其中布局模板中的""、""、""、""、""为模板中放置标题ID、拖动ID、内容ID、宽、高等,可以根据你自己设计的模板不同放在不同的位置.

来源:https://www.tulaoshi.com/n/20160219/1611060.html

延伸阅读
标签: Web开发
jQuery 的plugin开发需要注意的事情, 1. 明确jQuery的命名空间只有一个。 2. 明白options参数用来控制plugin的行为。 3. 为默认的plugin设定提供公共的访问权限。 4. 为子函数提供公共的访问权限。 5. 私有的函数绝对是私有访问 6. 支持metadata plugin。 我将会在下面的例子中一个一个的说明上面这几个条件,做完这些事情后我们就会创建一个高...
标签: Web开发
先去官网下载jQuery Timers插件 ,然后引用到html中。这里是1.2 version 代码如下: script src="../Javascripts/Plugins/jquery.timers-1.2.js" type="text/javascript"/script 然后是HTML,我们可以放一个hidden 的server control存值用,当然这个随你了。 代码如下: asp:HiddenField runat="server" / h1 jQuery Timers Te...
标签: Web开发
这里是js的代码: 代码如下: jQuery.fn.size = function() { return jQuery(this).get(0).options.length; } //获得选中项的索引 jQuery.fn.getSelectedIndex = function() { return jQuery(this).get(0).selectedIndex; } //获得当前选中项的文本 jQuery.fn.getSelectedText = function() { if(this.size() == 0) { return ...
标签: Web开发
在网络发展领域,由于 jQuery 简单易学,易于使用和易于扩展的特点,因此正慢慢变得无处不在。以下是从一些 jQuery 相关文章中整理出来的 30+ 新鲜与惊奇的 jQuery 插件与教程。如果你正在寻找最新的 jQuery 信息,这些内容值得一读。 教程 1. 在图像画廊载入过程中使用 jQuery 预加载技术。 | 2. 创建一个独特的熔岩灯动画效果的 j...
标签: Web开发
基于jquery的锁定弹出层 这个东西也是随手总结出来的,引用了一些js框架jquery的方法。 div遮盖其他控件的方法参考了 对于需要遮盖flash的,请将flash控件的WMode变量值设置为Transparent 使用方法: 代码如下: script src="jquery.js"/script script src="effect/maskDiv.js"/script script //配置模块 var moduleEvent = [{"i...

经验教程

12

收藏

5
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部