创想C2C商城高级企业版V4.03发布 创想企业网站建设解决方案 商城高级企业版全新亮相 好客玫琳凯直销联盟网
创想ECS系统安装配置手册 创想商务网B2B高级企业版 创想正在进行的优惠活动 青龙建材装饰城
创想ECS系统使用操作指南 创想ECS系统风格模板技术 创想软件使用文档中心 海量网页设计素材共享

jquery基础教程——如何制作简单的dialog插件

[ 840 查看 / 1 回复 ]

很多朋友都在跃跃欲试 打算打造自己的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ë‹Ó*¥•ÿ
TOP

好东东哦!ÔF°$»3‘£šbbs.bg68.comÈ!oë‹Ó*¥•ÿ
谢谢楼主分享啊ÔF°$»3‘£šbbs.bg68.comÈ!oë‹Ó*¥•ÿ
TOP