很多朋友都在跃跃欲试 打算打造自己的jquery插件,
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ我是 烦透了了jquery ui的dialog插件,所以突发奇想 自己写一个。先申明 就是随便这么一写,太多的还没有完善,之所以贴出来就是给大家一个参考。
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ下面大家跟我一起打造一个jquery dialog插件
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ首先创建一个插件
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ$.fn.dialog=function(){
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ}
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ下面我们首先考虑 当您要现实的信息弹出来的时候,文档上面有一个遮罩层是必需的
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ那我们来编写一个遮罩层
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ$.fn.dialog=function(){
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.MaskDiv=function()
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ {
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var wnd = $(window), doc = $(document);
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //alert(doc.height());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ if(wnd.height() > doc.height()){ //当高度少于一屏
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = wnd.height();
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }else{//当高度大于一屏
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = doc.height();
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //创建遮罩背景
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").append("<div ID=MaskID></div>");
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").find("#MaskID").width(wnd.width()).height(wHeight)
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ .css({position:"absolute",top:"0px",left:"0px",background:"#ccc",filter:"Alpha(opacity=90);",opacity:"0.3",zIndex:"10000"});
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ}
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ注:这个遮罩函数 也不怎么复杂,这里我就不过多的讲解了,有不懂的加群 来问
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ遮罩做好以后 我们就需要来写 信息提示显示的位置了,下面我们在写一个 显示位置的函数。
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ$.fn.dialog=function(){
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.MaskDiv=function()
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ {
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var wnd = $(window), doc = $(document);
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //alert(doc.height());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ if(wnd.height() > doc.height()){ //当高度少于一屏
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = wnd.height();
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }else{//当高度大于一屏
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = doc.height();
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //创建遮罩背景
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").append("<div ID=MaskID></div>");
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").find("#MaskID").width(wnd.width()).height(wHeight)
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ .css({position:"absolute",top:"0px",left:"0px",background:"#ccc",filter:"Alpha(opacity=90);",opacity:"0.3",zIndex:"10000"});
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.sPosition=function(obj)
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ {
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var MyDiv_w = parseInt(obj.width());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var MyDiv_h = parseInt(obj.height());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var width =parseInt($(document).width());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var height = parseInt($(window).height());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var left = parseInt($(document).scrollLeft());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var top = parseInt($(document).scrollTop());
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var Div_leftposition = left + (width / 2) - (MyDiv_w / 2); //计算左边距
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ return Array(Div_topposition,Div_leftposition);
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ}
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ我们这里主要是让信息显示在中间
完整代码:ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $.fn.dialog=function(){ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.MaskDiv=function()ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ {ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var wnd = $(window), doc = $(document);ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //alert(doc.height());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ if(wnd.height() > doc.height()){ //当高度少于一屏ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = wnd.height(); ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }else{//当高度大于一屏ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ wHeight = doc.height(); ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ //创建遮罩背景ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").append("ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ");ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").find("#MaskID").width(wnd.width()).height(wHeight)ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ .css({position:"absolute",top:"0px",left:"0px",background:"#ccc",filter:"Alpha(opacity=90);",opacity:"0.3",zIndex:"10000"});ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.sPosition=function(obj)ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ {ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var MyDiv_w = parseInt(obj.width());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var MyDiv_h = parseInt(obj.height());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var width =parseInt($(document).width());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var height = parseInt($(window).height());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var left = parseInt($(document).scrollLeft());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var top = parseInt($(document).scrollTop());ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var Div_topposition = top + (height / 2) - (MyDiv_h / 2); //计算上边距ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var Div_leftposition = left + (width / 2) - (MyDiv_w / 2); //计算左边距ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ return Array(Div_topposition,Div_leftposition);ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ this.MaskDiv();ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ $("body").append("ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ");ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ var obj=$("body").find("#DivDialog");ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ obj.width("200px").height("200px");ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ PosT=this.sPosition(obj);ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ obj.css({position:"absolute",top:PosT[0]+"px",left:PosT[1]+"px",background:"#FFCC66",zIndex:"10001"}).show("slow");ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ return this;ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ }ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ
|
ÔF°$»3£bbs.bg68.comÈ!oëÓ*¥ÿ