最近在项目中,用到了模态对话框,实现了该功能。 现把jQuery实现的代码共享出来。 下面是该完整代码: <script language="javascript"> var modal; var fx = { "initModal":function(width){ if($(".modal-window").length==0){ var moveFlag = false; return $("<div>").mousedown(function(event){ moveFlag = true; var yPos=parseInt($(this).css('top')); var xPos=parseInt($(this).css('left')); var x = event.clientX; var y = event.clientY; $(this).mousemove(function(event){ if(moveFlag==true){ x1 = event.clientX; y1 = event.clientY; var curX = xPos+x1-x; var curY = yPos+y1-y; $(this).css('top',curY+'px').css('left',curX+'px'); } }) }).mouseup(function(event){ moveFlag = false; }).addClass("modal-window").css("width",width+"px").css("margin-left","-"+width/2+"px").appendTo("body"); }else{ return $(".modal-window").css("width",width+"px"); } }, "addCloseButton":function(fx){ $("<span>").addClass("modal-close-btn").html("").click(function(event){ fx.boxOut(); }) .appendTo($(".modal-window")); }, "boxOut":function(event){ $(".modal-window,.modal-overlay").fadeOut("slow",function(event){ $(this).remove(); }); }, "boxIn":function(data,modal){ $("<div>").hide().addClass("modal-overlay").click(function(event){ fx.boxOut(event); }).appendTo("body"); modal.hide().html(data).appendTo("body"); $(".modal-window,.modal-overlay").fadeIn("slow"); } }; </script> 将该代码放在要使用模态窗口的页面里,再嵌入下面CSS代码: <style type="text/css"> .modal-window { position:absolute; top: 140px; left: 50%; width:300px; height: auto; margin-left: -150px; padding:0px; border: 1px solid #000; background-color:#fff; z-index:5; display:none; } .modal-close-btn{ position:absolute; top:8px; right:8px; margin:0; padding:0; width:15px; height:14px; color:#000000; background-image:url(../../images/close.gif); background-repeat:no-repeat; cursor:hand; } .modal-overlay{ top:0px; left:0px; width:100%; height:100%; position:absolute; background-color: rgba(0,0,0,.4); z-index:4; } </style> 下面是简单的调用代码: <script language="javascript"> modal = fx.initModal("720"); var data = "<table width=100% border=0 cellspacing=1 cellpadding=0 class=input_bluetable><tr><td width=100%>"+obj.alt+"</td></tr> <tr><td><img src="+obj.src+" width=720 height=576></td></tr></table>"; fx.boxIn(data,modal); fx.addCloseButton(fx); </script> 说明: modal = fx.initModal(
在css中使用了关闭按钮,该按钮使用了图片,该图片没有提供,可以根据自己需要修改。 |