自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Web開發(fā)中的彈出對話框控件介紹

開發(fā) 前端
Web開發(fā)中,目前由于Jquery的大行其道,因此很多彈出對話框,都用到了Jquery技術,反而原始的彈出對話框的方式較為少用了。

Web開發(fā)中,目前由于Jquery的大行其道,因此很多彈出對話框,都用到Jquery技術,反而原始的彈出對話框的方式較為少用了。不過基于JQuery的方式實現(xiàn)對話框窗口彈出,也有很多控件可以利用,由于工作需要及業(yè)余興趣所至,我比較了近10種的對話框控件,其中發(fā)現(xiàn)有一些做得很好的,除了功能強大,而且也支持多種皮膚樣式,甚至有些對話框的居中都考慮到了,細節(jié)決定體驗,有些真的不錯。

1、原始的彈出對話框實現(xiàn)(彈出窗口也可以)

我們知道,以前在沒有應用其他javascript庫(例如各種類型的Jquery庫)的時候,一般是通過window.open或者window.showModalDialog來彈出非模態(tài)或者模態(tài)的對話框的,如下腳本所示。

  1. function OpenWin( sURL , sFeatures )  
  2. {  
  3.     window.open( sURL , null , sFeatures , null)  
  4.     //window.open("Sample.htm",null,"height=200,width=400,status=yes,toolbar=no,menubar=no,location=no");  
  5.     //window.open( [sURL] [, sName] [, sFeatures] [, bReplace])  
  6.     //sName{_blank; _media; _parent; _search; _self; _top}  
  7.     //sFeatures{channelmode; directories; fullscreen; height; left; location; menubar; resizable; scrollbars; status; titlebar; toolbar; top; width}   
  8. }  
  9.  
  10. function ShowWin( sURL , sFeatures )  
  11. {  
  12.     if(sFeatures == null || sFeatures == ""){  
  13.         sFeatures = 'dialogHeight:300px;dialogWidth:850px;status:no;scroll:yes;resizable:yes;help:no;center:yes;';  
  14.      }  
  15.        
  16.     var returnValue= window.showModalDialog( sURL , null , sFeatures)  
  17.     //window.showModalDialog("Sample.htm",null,"dialogHeight:591px;dialogWidth:650px;")  
  18.     //window.showModalDialog([sURL] [, vArguments] [, sFeatures])  
  19.     //sFeatures{dialogHeight; dialogLeft; dialogTop; dialogWidth; center; dialogHide; edge; help; resizable; scroll; status; unadorned}  
  20.     if(returnValue != undefined)  
  21.     {  
  22.         return returnValue;  
  23.     }  
  24.     else 
  25.     {  
  26.         return "";  
  27.     }  

這種是原始方式,好處壞處大家都明白,就不說了。

還有一種基于Jquery的原始彈出窗口方式,由于我一般使用的是easy-ui作為界面的基礎組件,因此基于easy-ui的原始彈出窗口方式,只能是彈出內(nèi)部的HTML層內(nèi)容,對于彈出獨立的頁面這種方式支持不夠好。

  1. <script type="text/javascript">   
  2.  
  3.     function initDialog(divname) {  
  4.         var dlg = jQuery(divname).dialog({  
  5.             draggable: true,  
  6.             resizable: true,  
  7.             closed: true,  
  8.             show: 'Transfer',  
  9.             hide: 'Transfer',  
  10.             autoOpen: false,  
  11.             width: 500,  
  12.             height: 250,  
  13.             minHeight: 10,  
  14.             minwidth: 10  
  15.         });  
  16.         dlg.parent().appendTo(jQuery("form:first"));  
  17.     };  
  18.  
  19.     function close(divname) {  
  20.         $(divname).dialog('close');  
  21.     }  
  22.     </script> 

2、Popup的彈出式對話框

這個popup控件彈出的對話框,它好像把彈出的子頁面放到了父窗口里面了,感覺是一體化的,所以操作父窗口的對話框也可以,非常方便。

這個popup控件,比較容易使用,不過不好的地方就是不兼容其他瀏覽器如Chrome等,其他瀏覽器顯示層是錯位的,不好看,而且樣式也相對比較簡單一點了。

但由于在彈出窗口中可以很好操作父窗口的腳本以及使用方便,在我以前的一些項目里面,用的還算比較多。

3、AsyncBox的彈出對話框

這個控件感覺做的很不錯,而且提供了Chrome、QQBrowser、Ext、ZCMS四種不錯的窗體皮膚,適應多種需要,通過修改它們的皮膚圖片,還可以定義適合自己項目的樣式皮膚,如我修改定義了一種黃色調(diào)的樣式例子。

不過在使用過程中,發(fā)現(xiàn)這個控件,對有些腳本或者Jquery控件有沖突,具體原因未明,總之發(fā)現(xiàn)了和基于Jquery的ZTree運行不正常,還有一些Jquery組件使用也不正常,在我的Web權限管理系統(tǒng)中,本來想用這個作為彈出窗口顯示一些設置信息的,發(fā)現(xiàn)zTree的Node選中值獲取不了,也就相當于失效了,非常郁悶,弄了很久,沒有找到具體原因。還有另外一個問題,就是這個控件的作者不知道什么原因,好像停止了對該控件的開發(fā)了,連它的官網(wǎng)也下架了。

不過對于彈出窗口的使用來說,該控件已經(jīng)很不錯了,提供了多種調(diào)用模塊,而我一般傾向于彈出另外一個頁面這種方式,當然它也支持彈出頁面內(nèi)部的層或者HTML代碼等等方式。

#p#

4、artDialog彈出對話框

這個artDialog彈出對話框組件,是我覺得相當好的一款了,除了支持多種瀏覽器,而且提供的界面效果更多,目前的版本是V4.1.6,好像還有一個V5.0的Beta版本(https://github.com/aui/artDialog),但是V5.0的就調(diào)整了不支持通過art.dialog.open方式彈出獨立Web頁面的方式了,要實現(xiàn)彈出獨立頁面,需要使用Iframe的代碼,效果就差了一些,所以我傾向于V4.1.6。

該控件支持自動計算居中位置,我們只需要指定對話框的大小即可,當然它很好支持頁面內(nèi)的層內(nèi)容的彈出顯示,不過我更關注的是獨立頁面的彈出對話框顯示,我在具體的Web權限管理系統(tǒng)中應用的效果如下所示(結合了ZTree控件,運行正常)。

這個控件提供了很多參數(shù)以及方法,對實現(xiàn)調(diào)用非常強大。

  1. <script src="http://www.cnblogs.com/JQueryTools/artDialog/artDialog.source.js?skin=blue" type="text/javascript"></script> 
  2. <script src="http://www.cnblogs.com/JQueryTools/artDialog/plugins/iframeTools.source.js" type="text/javascript"></script> 

首先封裝一個通用的Javascript函數(shù)

  1. function ShowArtDlg(title, url, width, height, lock)   
  2. {  
  3.     if (width == null || width == "") {  
  4.         width = '90%';  
  5.     }  
  6.     if (!width.indexOf('px') && !width.indexOf('%')) {  
  7.         width = width + 'px';  
  8.     }  
  9.     if (width.indexOf('px') < 0 && width.indexOf('%') < 0) {  
  10.         width = width + 'px';  
  11.     }  
  12.  
  13.     if (height == null || height == "") {  
  14.         height = '90%' 
  15.     }  
  16.     if (height.indexOf('px') < 0 && height.indexOf('%') < 0) {  
  17.         height = height + 'px';  
  18.     }  
  19.  
  20.     if (lock == null || lock == "") {  
  21.         lock = false;  
  22.     }  
  23.     art.dialog.open(url, { height: height, width: width, title: title, lock: lock }, false); //打開子窗體  

頁面里面調(diào)用的代碼如下所示。

  1. <tr align="right">  
  2.                         <td>  
  3.                             <a href="#" class="easyui-linkbutton" iconcls="icon-edit" id="btnAddUser" onclick="ShowArtDlg('編輯-包含用戶', 'EditTree.aspx?type=user&ouid=' + $('#txtID').val(), '360px', '500px')" runat="server">編輯</a>&nbsp;&nbsp;  
  4.                             <a href="#" class="easyui-linkbutton" iconcls="icon-remove" id="btnDeleteUser" onclick="deleteUser()" runat="server">移除</a>  
  5.                         </td>  
  6.                     </tr> 

如果你用5.0+的ArtDialog,調(diào)整了不支持通過art.dialog.open方式彈出獨立Web頁面的方式,但還是可以通過以下的方法去彈出獨立頁面。

  1. art.dialog({title : "選擇***",  
  2.             cancel : true,  
  3.             width : 600,  
  4.             padding : '5px',  
  5.             content : '<iframe src="test.aspx" id="test" name="test" height="400" width="600" frameborder="0"></iframe>',  
  6.             ok : function(){  
  7.                 ...  
  8.             }  
  9.         }); 

5、還有一些彈出窗口控件,還支持窗口的最大化操作,這個功能還是不錯的。

原文鏈接:http://www.cnblogs.com/wuhuacong/archive/2012/12/02/2797803.html

責任編輯:林師授 來源: 博客園
相關推薦

2009-12-11 15:35:50

PHP彈出對話框

2009-12-28 13:47:35

WPF對話框

2011-07-01 11:33:00

Qt 模態(tài) 非模態(tài)

2009-08-07 18:04:22

ASP.NET Dat確認對話框

2011-11-23 09:47:36

Winform

2011-06-02 10:37:02

Android 對話框

2009-11-03 09:21:26

Visual Stud

2019-01-09 11:30:07

Windows10空白對話框命令

2021-01-28 14:34:35

鴻蒙HarmonyOS應用開發(fā)

2010-01-28 16:55:26

Android對話框

2011-07-21 15:50:42

jQuery Mobi頁面對話框

2022-03-02 15:47:57

Dialog組件UI設計鴻蒙

2009-12-28 14:32:31

WPF窗體對話框

2011-05-20 16:49:21

VB.NET

2013-12-27 14:10:36

Android開發(fā)Android應用Transform

2010-01-11 09:33:32

VB.NET對話框調(diào)用

2009-12-29 15:24:48

WPF對話框

2012-05-14 10:33:43

Coding4Fun

2013-11-07 10:25:12

Windows 8.1BUG

2011-07-22 15:32:53

iPhone 按鈕 對話框
點贊
收藏

51CTO技術棧公眾號