+ -
当前位置:首页 → 问答吧 → 有没有弹出可拖动的遮罩层的插件?功能类似qq空间点击好友买卖的我买的起的人弹出的效果

有没有弹出可拖动的遮罩层的插件?功能类似qq空间点击好友买卖的我买的起的人弹出的效果

时间:2009-07-25

来源:互联网

有没有弹出可拖动的遮罩层的插件?功能类似qq空间点击好友买卖的我买的起的人弹出的效果

作者: tomatojacky   发布时间: 2009-07-25

或者类似baidu的popup.js的效果

弹出遮罩层的效果的插件比较多,可拖动的插件也比较多,有没有把两者结合在一起的插件?

我还没有试着把弹出层插件和拖动插件放在一个页面试过。

哦,还有本论坛的批量上传的效果不错,有没有尽量简单的代码,可以很方便的调用的。大家交流一下。

当然也可以mail给我,thanks

作者: tomatojacky   发布时间: 2009-07-25

http://files.getdropbox.com/u/335315/popeye/popbox/default.html
190行JS压缩后4k,扩展方便

作者: choiceblue   发布时间: 2009-07-27

当然有了。搜firstebox就能找到

作者: jevoly   发布时间: 2009-08-24

我自己写的行不?这么简单的东西,为什么不自己搞?


复制代码
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. <!--
  5. body,td,th {
  6.     font-size: 12px;
  7. }
  8. -->
  9. </style>
  10. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
  11. <script language="javascript">
  12. /** jquery  dialog插件  janchie  2009
  13.     版本:1.0
  14. */
  15. (function($){
  16. $.dialog = function(width,height,content){
  17.     //插入弹出层相关元素
  18.     $("body",document).append("<div id=\"dialog_mask_bg\"></div><div id=\"dialog_box\"></div>");
  19.     $("#dialog_box").append("<div id=\"dialog_box_title\"></div><div id=\"dialog_box_html\"></div><div id=\"dialog_box_bom\"></div>");
  20.     var dialogWidth = (typeof(width)!= undefined && typeof(width)=="number" && width!="") ? width : 500 ;
  21.     var dialogHeight = (typeof(height)!= undefined && typeof(height)=="number" && height!="") ? height : 400 ;
  22.     var dialogContent = (typeof(content)!= undefined && $.trim(content)!="") ? content : "" ;
  23.     $("#dialog_box_title").append("<span id=\"dialog_close\">×</span>");
  24.     $("#dialog_close").click(dialogRemove);
  25.     $("#dialog_box_html").append(dialogContent);
  26.     newBtn("btnOK"," 确定 ");
  27.     newBtn("btnCancel"," 取消 ");
  28.     //取页面宽高度(兼容多浏览器及各种CSS渲染模式)
  29.     var getSize = (function(){
  30.         var check,obj,bodySize = [];
  31.         var check = document.compatMode == "BackCompat" ?  false : true;
  32.         var obj = check ? document.documentElement : document.body;
  33.         with(obj){
  34.             bodySize[0] = scrollWidth>clientWidth ? scrollWidth : clientWidth;
  35.             bodySize[1] = scrollHeight>clientHeight ? scrollHeight : clientHeight;
  36.             bodySize[2] = clientWidth;
  37.             bodySize[3] = clientHeight;
  38.         }
  39.         return bodySize;
  40.     })();
  41.     var bodyWidth = getSize[0];
  42.     var bodyHeight = getSize[1];
  43.     var dialogX = (getSize[2]-dialogWidth)/2 > 0 ? (getSize[2]-dialogWidth)/2 : 0;
  44.     var dialogY = (getSize[3]-dialogHeight)/2 > 0 ? (getSize[3]-dialogHeight)/2 : 0;
  45.     //边框尺寸
  46.     var dialogBorder = 1;
  47.     //弹出层盒子显示
  48.     $("#dialog_box").css({"background":"#069","position":"absolute","border":dialogBorder+"px solid #069","z-index":"102"})
  49.     .css({"left":dialogX+"px","top":dialogY+"px","width":dialogWidth+"px","height":dialogHeight+"px"});
  50.     
  51.     //弹出层标题栏
  52.     $("#dialog_box_title").css({"width":dialogWidth+"px","height":"25px","color":"#FFF","cursor":"move","z-index":"104"})
  53.     .css("background","url(dialog_title_bg.gif) repeat-x top #EEE")    
  54.     .mousedown(function(e){ dialogDrag($(this).parent(),e); });
  55.     $("#dialog_close").css({"float":"right","padding":"2px","cursor":"hand","cursor":"pointer"});
  56.     
  57.     //弹出层详细内容区
  58.     $("#dialog_box_html").css({"background":"#FFF","width":dialogWidth+"px","height":dialogHeight-50+"px","z-index":"106"});    
  59.     //弹出层底部
  60.     $("#dialog_box_bom").css({"background":"#EEE","width":dialogWidth+"px","height":"25px","z-index":"108"});
  61.     //遮罩层背景显示
  62.     $("#dialog_mask_bg").css({"background":"#CCC","position":"absolute","opacity":"0","z-index":"100"})
  63.     .css({"top":"0px","left":"0px","width":bodyWidth+"px","height":bodyHeight+"px"})
  64.     .animate({"opacity":"0.6"},"normal");
  65.     bgiframe($("#dialog_mask_bg"));
  66.     
  67.     //遮罩层缩放自适应
  68.     //$(window).resize(function(){
  69.     //    $("#dialog_mask_bg").css({"width":"0px","height":"0px"});
  70.     //    var reBodySize = getBodySize;
  71.     //    $("#dialog_mask_bg").width(reBodySize[0])
  72.     //    .height(reBodySize[1]);
  73.     //});
  74.     //弹出层移除
  75.     function dialogRemove(){
  76.         $("#dialog_mask_bg").fadeOut("fast",function(){ $(this).remove();});
  77.         $("#dialog_box").remove();
  78.     }
  79.     // 创建底部按钮
  80.     function newBtn(name,value,fn){
  81.         var btnObj = "<input type=\"button\" name=\""+name+"\" id=\""+name+"\" value=\""+value+"\" />";    
  82.         var f = $.isFunction(fn) ? fn : dialogRemove;
  83.         $("#dialog_box_bom").append(btnObj)
  84.         .css({"text-align":"center"});
  85.         $("#"+name).click(f);
  86.     }
  87.     
  88.     // 拖拽实现
  89.     function dialogDrag(target,e) {
  90.         var deltaX= e.clientX - target[0].offsetLeft;
  91.         var deltaY= e.clientY - target[0].offsetTop;
  92.         var drag = true;
  93.         $(document).bind("mousemove",function(ev){
  94.         if (drag) {
  95.             var Y = ev.clientY-deltaY;
  96.             var X = ev.clientX-deltaX;
  97.             var H = bodyHeight-target[0].offsetHeight;
  98.             var W = bodyWidth-target[0].offsetWidth;
  99.             if(Y>0 || X>0){
  100.                 if (Y>=H){ target.css("top",H+"px"); }else{ target.css("top",Y+"px"); }
  101.                 if (X>=W){ target.css("left",W+"px"); }else{ target.css("left",X+"px"); }
  102.             }
  103.             if(Y<=0) target.css("top","0px");
  104.             if(X<=0) target.css("left","0px");
  105.         }
  106.         })
  107.         .bind("mouseup",function(){
  108.             drag = false;
  109.             $(this).unbind("mousemove")
  110.             .unbind("mouseup");
  111.         });
  112.     }
  113.     
  114.     // 背景iframe,防select控件被遮罩无效,改自jqueryui
  115.     function bgiframe(elm){
  116.     if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
  117.         html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="javascript:false;"'+
  118.                        'style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');'+
  119.                            'top:expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\');'+
  120.                            'left:expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\');'+
  121.                            'width:expression(this.parentNode.offsetWidth+\'px\');'+
  122.                            'height:expression(this.parentNode.offsetHeight+\'px\');"/>';
  123.         return elm.each(function() {
  124.             if ( $('> iframe.bgiframe', this).length == 0 )
  125.                 this.insertBefore( document.createElement(html), this.firstChild );
  126.         });
  127.     }
  128.     return elm;
  129.     }
  130. }
  131. })(jQuery);
  132. ///--------使用---------------------------------------------------------------------------
  133. $(function(){
  134.     $("#btn1").click(function(){
  135.         $.dialog(300,200,"内容");
  136.     });
  137. })
  138. </script>
  139. </head>
  140. <body>
  141. <input type="button" value="测试" id="btn1">
  142. <p> </p>
  143. <select name="test2">
  144. <option>adfdsafdsfdsafdsafsdaf</option>
  145. </select>
  146. <p> </p>
  147. <p> </p>
  148. <p> </p>
  149. <p> </p>
  150. <p> </p>
  151. <p> </p>
  152. <p> </p>
  153. <p> </p>
  154. <p> </p>
  155. <p> </p>
  156. <p> </p>
  157. <p> </p>
  158. <p> </p>
  159. <p> </p>
  160. <p> </p>
  161. <p> </p>
  162. <p> </p>
  163. <p> </p>
  164. <p> </p>
  165. <p> </p>
  166. <p> </p>
  167. <p> </p>
  168. <p> </p>
  169. <p> </p>
  170. <p> </p>
  171. <p> </p>
  172. <p> </p>
  173. <p> </p>
  174. <p> </p>
  175. <p> </p>
  176. <p> </p>
  177. <p> </p>
  178. <p> </p>
  179. <p> </p>
  180. <p> </p>
  181. <p> </p>
  182. <p> </p>
  183. <p> </p>
  184. <p> </p>
  185. <p> </p>
  186. <p> </p>
  187. <p> </p>
  188. </body>
  189. </html>

作者: janchie   发布时间: 2009-08-27

大哥你太有才了,我找了一天了 谢谢撒

作者: huyawei58825   发布时间: 2009-08-27

额-  - 有没有内容可以从html代码里放进去的可拖动的弹出层啊

作者: huyawei58825   发布时间: 2009-08-27

引用
引用第6楼huyawei58825于2009-08-27 10:07发表的  :
额-  - 有没有内容可以从html代码里放进去的可拖动的弹出层啊


等我后续更新,放个iframe

作者: janchie   发布时间: 2009-08-27

学习中。谢谢分享

作者: alangz   发布时间: 2009-10-18

去找 一个帖子  不错的jquery ui  那个你下载之后会大吃一惊的,可以切换风格,同样也有 可拖动 弹出遮罩层

作者: huyawei58825   发布时间: 2009-10-19

额 貌似没遮罩呢,我把他跟 jquery grid 结合倒是弄了一个 遮罩层

作者: huyawei58825   发布时间: 2009-10-19

相关阅读 更多