發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
在《彈出層之1:JQuery.Boxy (一)》中講到了JQuery.Boxy的基本用法,本次講下手動創(chuàng)建實例,new一個boxy對象是很容易的,傳遞一些參數(shù)對象就能滿足不同的需求了。
4.1、手動創(chuàng)建實例
方法:Boxy.load(url, options)以一個URL加載內(nèi)容并以Boxy對話框的形式展現(xiàn)。支持以下的一些選項參數(shù): 類型 - HTTP方法,默認(rèn)為GET緩存 - 如果是true,緩存內(nèi)容連續(xù)通話。相當(dāng)于緩存選項傳遞到j(luò)Query的Ajax方法。默認(rèn):false。過濾 - jQuery的表達(dá)式,用于過濾遠(yuǎn)程內(nèi)容。(任何其他指定的選項將被傳遞到boxy的構(gòu)造函數(shù)中)
Boxy.get(element)返回包含元素的實例,例如:<a href="#" onclick="Boxy.get(this).hide();">關(guān)閉對話框</a>
Boxy.ask(question, answers, callback, options)顯示模式,即非可關(guān)閉對話框,允許用戶選擇選項。問題是要顯示給用戶的信息。答案是一個數(shù)組或一切可能的回答的數(shù)列?;卣{(diào)函數(shù)將收到選定的回答,這是否是需要的值或相應(yīng)的密鑰要根據(jù)一個數(shù)組或答案數(shù)列是否已經(jīng)提供了。options是一種額外的可選設(shè)置選項傳遞給對話框的構(gòu)造函數(shù)。
Boxy.alert(message, callback, options)顯示模式,非可關(guān)閉對話框顯示消息給用戶。注意:此方法并不是為了取代瀏覽器本地window.alert()函數(shù)提供,因為它沒有能力阻止程序執(zhí)行,在對話框是可見的時候。
Boxy.confirm(message, callback, options)顯示模式,非可關(guān)閉對話框顯示的含有確定和取消按鈕的消息?;卣{(diào)只會在用戶選擇了“確定”時被調(diào)用。注意:此方法并不是為了取代瀏覽器提供的本地window.confirm()函數(shù),因為它沒有能力在對話框可見時阻止程序執(zhí)行的。
Boxy.linkedTo(ele)返回已通過執(zhí)行器構(gòu)造函數(shù)選項連接DOM元素的boxy實例。
Boxy.isModalVisible()返回true如果任何模式對話框是當(dāng)前可見的,否則返回false。
new Boxy(element, options)構(gòu)造函數(shù);創(chuàng)建一個新的boxy對話框。element是對話框的內(nèi)容;任何有效的參數(shù),jQuery的$()函數(shù)在這里也是有效的。options是一個配置選項的散列,見下面詳細(xì)的資料。
estimateSize()當(dāng)對話框不可見的時候估計其大小。如果當(dāng)前對話框可見,不要使用此方法,使用getSize()代替。
getSize()以數(shù)組的形式[width, height]返回對話框的大小。
getContentSize()返回對話框內(nèi)容區(qū)域的大小。默認(rèn)情況下,指在對話框框架里的一切,不包括標(biāo)題欄。
getPosition()以[x,y]數(shù)組形式返回最頂層對話框的左上角坐標(biāo)。
getCenter()以[x,y]數(shù)組形式返回最頂層對話框的中心點的坐標(biāo)。
getInner()返回一個jQuery對象包裝對話框的內(nèi)部區(qū)域-框架內(nèi)包括標(biāo)題欄一切。
getContent()返回一個jQuery對象包裝對話框的內(nèi)容區(qū)域-框架內(nèi)的一切,不包括標(biāo)題欄。
setContent(newContent)設(shè)置對話框中的內(nèi)容,任何對$()有效的參數(shù)也對設(shè)置的新內(nèi)容有效。可鏈接。
moveTo(x,y)移動對話框到左上角為(x,y)的位置,可鏈接。
centerAt(x,y)把對話框移動到中心坐標(biāo)為(x,y)的位置上。
center(axis)移動對話框,使其在視野的中央??蛇x參數(shù)axis可以是"x","y"中的任意一個中心軸??涉溄?。
resize(w,h,after)重新調(diào)整對話框的高寬到[w,h],完成后執(zhí)行回調(diào)函數(shù),回調(diào)函數(shù)將接受Boxy實例作為參數(shù)??涉溄?。
tween(w,h,after)動畫補間對話框高寬到[w,h],完成后執(zhí)行回調(diào)函數(shù),回調(diào)函數(shù)將接受Boxy實例作為參數(shù)。可鏈接。
isVisible()如果當(dāng)前對話框可見,則返回true,否則返回false。
show()顯示對話框,可鏈接。
hide(after)隱藏對話框,after為可選回調(diào)函數(shù),完成后執(zhí)行。可鏈接。
toggle()觸發(fā)對話框的顯隱屬性。可鏈接。
hideAndUnload(after)在隱藏后立即執(zhí)行卸載。在卸載之前執(zhí)行after回調(diào)函數(shù)??涉溄印?/p>
unload()從DOM中刪除對話框,切斷其與執(zhí)行機(jī)構(gòu)的聯(lián)系,如果有的話。一旦出現(xiàn)一個對話框已被卸載它的任何進(jìn)一步行動都是未定義的。
toTop()將當(dāng)前對話框移動到其他所有對話框的上部??涉溄?。
getTitle()以HTML的形式返回對話框的標(biāo)題。
setTitle(t)設(shè)置對話框的標(biāo)題為t,可鏈接。
屬性:
CSS選擇器 .boxy-wrapper .title-bardiv包裝的自動生成的標(biāo)題欄
.boxy-wrapper .title-bar h2標(biāo)題欄的內(nèi)容
.boxy-wrapper .title-bar.dragging拖拽時候的標(biāo)題欄
.boxy-wrapper .title-bar .close默認(rèn)的關(guān)閉對話框的執(zhí)行器
.boxy-inner內(nèi)部區(qū)域,包括標(biāo)題欄
.boxy-content內(nèi)部區(qū)域,不包括標(biāo)題欄。這個class類將被自動添加到傳遞給Boxy的構(gòu)造函數(shù)的任何元素。
.boxy-wrapper .question通過Boxy.ask()創(chuàng)建的,包含問題文字
.boxy-wrapper .answers通過Boxy.ask()創(chuàng)建的,包含應(yīng)答的按鈕
.close這一class類的任何內(nèi)容的單擊事件將關(guān)聯(lián)到關(guān)閉對話框上。
選擇器的外框圓角效果是使用png圖片實現(xiàn)的,如果想更改透明程度,可以使用ps修改圖片;如果不考慮IE6的話,可以使用另一種常用的圓角方法(不用圖片只用css樣式)。
官網(wǎng):http:///projects/jquery/boxy/譯文:http://www./wordpress/?p=318
本文示例
Boxy是一個基于JQuery的彈出層插件,它有相對漂亮的外觀,功能齊全,支持iframe,支持模式窗口但相對于同樣的彈出層插件BlockUI它明顯笨重,但使用不那么方便。
1、下載并修改插件
可以在官網(wǎng)上下載到最新版(http://plugins./files/boxy-0.1.4.zip),到我寫這些文字的時候最新版為0.1.4版,下載解壓后有1個主要的js文件:jquery.boxy.js;1個css文件;還有4個圖片用于構(gòu)成彈出層的4個圓角。將文件引入系統(tǒng)中,修改boxy.css,將下面的圖片路徑修改為項目中實際的位置,如果設(shè)置不對會引起圖片失效,那時就難看了。
2、將插件引用到頁面中
3、給匹配的元素綁定boxy行為 <script type="text/javascript"> $(function() { $(".boxy").boxy(); }); </script> <a href="#m1" class="boxy" title="這是超鏈接的標(biāo)題">3.1、點我就會彈出一個對話框</a> <div id="m1" style="display: none"> 我是超鏈接彈出來的</div>
href超鏈接到要彈出顯示內(nèi)容的文件。
3.3、提交時以確認(rèn)框形式彈出 <script type="text/javascript"> $(function() { $(".boxy").boxy(); }); </script> <form class="boxy" action="Default.html" method="post"> <input id="Submit1" type="submit" value="3.3、提交時顯示彈出層"/> </form>
說明:1、boxy對話框自動計算出您的內(nèi)容區(qū)域內(nèi)本身的大小和位置,沒有必要明確規(guī)定了包裝集的尺寸;2、上面的簡單使用方法中其實是在間接指定boxy中message屬性的內(nèi)容,該屬性為彈出框的顯示信息,默認(rèn)為:“請確認(rèn):”3、每個匹配錨title屬性將被用來作為其相應(yīng)的對話框的標(biāo)題4、message的內(nèi)容的display屬性都將設(shè)置為block(顯示為塊)
下載本文示例
JQuery.BlockUI是眾多JQuery插件彈出層中的一個,它小巧(原版16k,壓縮后10左右),容易使用, 功能齊全,支持Iframe,支持Modal,可定制性高也意味他默認(rèn)謙虛的外表。
jQuery的BlockUI插件可以讓你在使用AJAX時模擬同步行為,鎖定瀏覽器(模式窗口)。當(dāng)被激活時,它會防止用戶活動的頁面(或頁面的一部分),直到它被禁用。 BlockUI添加元素的DOM,給它的外觀和阻止用戶交互行為。
1、首先引入插件
2、調(diào)用
3、樣式修改
jQuery blockUI 提供的默認(rèn)樣式過于樸素, 可以在每一次調(diào)用blockUI() 函數(shù)時進(jìn)行修改. 也一次直接修改庫文件 jquery.blockUI.js, 修改$.blockUI.defaults 對象相關(guān)的代碼:
總結(jié):上面的文字個人認(rèn)為寫的比較爛,但基本的使用沒有問題,詳盡的支持是官網(wǎng):http://www./jquery/block/,這個站還有一些其它插件也值得看看。
本文示例下載
tipswindow是一個很一般的JQuery彈出層插件,但使用簡單,有相對漂亮的外觀,代碼比較通俗。下面介紹使用方法:
1、首先引入該插件相關(guān)文件,分別是樣式,JQuery庫,該插件
2、修改tipswindow.css文件中圖片的路徑,默認(rèn)與css文件在同一個目錄下。3、編寫代碼,如在圖片上設(shè)置單擊事件后放大顯示圖片:
其它用法網(wǎng)友總結(jié)如下:1.彈出文本信息提示: tipsWindown("提示","text:提示信息內(nèi)容","250","150","true","","true","msg")
2.彈出頁面中的某個ID的html: tipsWindown("標(biāo)題","id:testID","300","200","true","","true","id")
3.彈出圖片: tipsWindown("圖片","img:圖片路徑","250","150","true","","true","img")
4.get加載一個.html文件(也可以是.php/.asp?id=4之類的): tipsWindown("標(biāo)題","url:get?test.html","250","150","true","","true","text");
5.加載一個頁面到框架顯示:tipsWindown("標(biāo)題","iframe:http://","900","580","true","","true","leotheme");
6.彈出一個不能拖動且沒有遮罩背景的文本信息層: tipsWindown("提示","text:提示信息內(nèi)容","250","150","false","","false","msg")
7.彈出一個不能拖動,三秒鐘自動關(guān)閉的層: tipsWindown("提示","text:提示信息內(nèi)容","250","150","false","3000","true","msg")
1、下載本文示例2、下載官方最新示例與框架(推薦)官網(wǎng):http:///javascript/jquery-plugins-tipswindow-2-0.html
jquery.validate是基于jquery的一個B/S客戶端驗證框架,借助jquery的優(yōu)勢,我們可以迅速驗證一些常見的輸入,大大提高了開發(fā)效率,下面是本人做的學(xué)習(xí)筆記:
示例源碼下載
注意:validate只是使驗證變得方便,簡單,本質(zhì)還是使用js,不論多么強大的js驗證,當(dāng)用戶把js禁用或使用機(jī)器直接發(fā)起請求時都不能確保數(shù)據(jù)的完整性,所有不要把希望寄托在客戶端驗證,個人認(rèn)為每一個客戶端驗證都要服務(wù)器進(jìn)行再次驗證。
radio、checkbox、select的驗證其實方法與前面提到?jīng)]有太大的區(qū)別,但問題是錯誤信息會顯示在同一組的第一個元素后面,效果如下所示:
解決這個問題的辦法是將錯誤信息指定到一個特定的位置,validate()方法的參數(shù)中可以進(jìn)行自定義,示例代碼如下:
運行結(jié)果如下:
此外:如果在參數(shù)中加上debug:true則只用于調(diào)試表單不會提交到服務(wù)器; submitHandler: function() {}將會在表單提交到服務(wù)器前執(zhí)行一些操作;用remote可以進(jìn)行Ajax驗證,好像有個小bug;在使用ASP.NET與validate組合使用時會有一些問題可以參考網(wǎng)友的博文。
1、在ASP.NET中按鈕都會解析成submit所有都會觸發(fā)驗證,如果想讓某個按鈕不觸發(fā)驗證可以加上這個樣式:class="cancel"
源碼下載
運行結(jié)果:
注意,如果參數(shù)有多個可以使用數(shù)組,如regex:[1,3,5],方法中可以使用下標(biāo)訪問:params[0]
網(wǎng)友提供的一些擴(kuò)展驗證方法:// 手機(jī)號碼驗證jQuery.validator.addMethod("mobile", function(value, element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/ return this.optional(element) || (length == 11 && mobile.test(value));}, "手機(jī)號碼格式錯誤");
// 電話號碼驗證 jQuery.validator.addMethod("phone", function(value, element) { var tel = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/; return this.optional(element) || (tel.test(value));}, "電話號碼格式錯誤");
// 郵政編碼驗證 jQuery.validator.addMethod("zipCode", function(value, element) { var tel = /^[0-9]{6}$/; return this.optional(element) || (tel.test(value));}, "郵政編碼格式錯誤");
// QQ號碼驗證 jQuery.validator.addMethod("qq", function(value, element) { var tel = /^[1-9]\d{4,9}$/; return this.optional(element) || (tel.test(value));}, "qq號碼格式錯誤");
// IP地址驗證jQuery.validator.addMethod("ip", function(value, element) { var ip = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return this.optional(element) || (ip.test(value) && (RegExp.$1 < 256 && RegExp.$2 < 256 && RegExp.$3 < 256 && RegExp.$4 < 256));}, "Ip地址格式錯誤");
// 字母和數(shù)字的驗證jQuery.validator.addMethod("chrnum", function(value, element) { var chrnum = /^([a-zA-Z0-9]+)$/; return this.optional(element) || (chrnum.test(value));}, "只能輸入數(shù)字和字母(字符A-Z, a-z, 0-9)");
// 中文的驗證jQuery.validator.addMethod("chinese", function(value, element) { var chinese = /^[\u4e00-\u9fa5]+$/; return this.optional(element) || (chinese.test(value));}, "只能輸入中文");
// 下拉框驗證$.validator.addMethod("selectNone", function(value, element) { return value == "請選擇";}, "必須選擇一項");
// 字節(jié)長度驗證jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { var length = value.length; for (var i = 0; i < value.length; i++) { if (value.charCodeAt(i) > 127) { length++; } } return this.optional(element) || (length >= param[0] && length <= param[1]);}, $.validator.format("請確保輸入的值在{0}-{1}個字節(jié)之間(一個中文字算2個字節(jié))"));源碼下載
我們先來使用firebug查看在前面的示例中JS產(chǎn)生的html錯誤提示:
html與前面的示例相同在上一個示例的基礎(chǔ)上添加了一個messages項,為其指定了一個對象類型的值,與rules基本對應(yīng),特意沒有指定email的錯誤信息,運行結(jié)果如下:
遠(yuǎn)行結(jié)果:
注意:在ASP.NET中使用這種JS驗證方法最好將服務(wù)器控件Id替換成客戶端Id,如:<%=控件Id.ClientId %>,<%=控件Id.UniqueId>
來自: Ethan的博客 > 《網(wǎng)頁制作云》
0條評論
發(fā)表
請遵守用戶 評論公約
jQuery登陸判斷簡單實現(xiàn)代碼
} }) }) < /script> < /head> < body> 用戶名:<input id="txtUserName" type="text" value="請輸入用戶名" /><br /> 密 碼:<input ...
jQuery 強大的jQuery彈出層插件–BlockUI
jQuery 強大的jQuery彈出層插件–BlockUI經(jīng)常會有些同志問我有沒有好用的基于jQuery的彈出層插件,我通常都會毫不猶豫的推薦他這款插件–BlockUI。BlockUI的下載地址是:hhttp://jquery.malsup.com/blo...
JS~重寫alter與confirm,讓它們變成fancybox風(fēng)格
JS~重寫alter與confirm,讓它們變成fancybox風(fēng)格插件與系統(tǒng)命令。} window.confirm = function (msg, callBack) { $.fancybox($("#MessageBox_delete").html(), { '''''...
彈出對話框
彈出框ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>alert(''請先選擇數(shù)據(jù)!'')</script>");
UI前臺 加載等候插件
BlockUI 無論是功能還是界面定制性都比 LoadMask 要豐富些,例如 BlockUI 提供了 Overlay 遮罩層的漸入漸出式動畫顯示,JS 中的樣式定制,消息提示的支持,提示層可顯示在右上角,還可做出模態(tài)窗口,以...
【JS常用代碼】Jquery鼠標(biāo)移入顯示效果
編寫一個jquery插件
編寫一個jquery插件<head> <script type="text/javascript">//編寫一個名字為color的jquery插件 ;(function ($) { jQuery.fn.extend({ "color": f...
jQuery框架學(xué)習(xí)第七天:jQuery動畫–jQuery讓頁面動起來! - 學(xué)IT網(wǎng) x...
開發(fā)人員一直痛疼做動畫. 但是有了jQuery你會瞬間成為別人(那些不知道jQuery的人)眼里的動畫高手! 本文將介紹jQuery的動畫相關(guān)函數(shù).原來做動畫如此簡單!基本動畫函數(shù): 既有透明度漸變, 又有滑動效果. ...
網(wǎng)站開發(fā)常用jQuery插件總結(jié)(二)彈出層插件Lightbox
網(wǎng)站開發(fā)常用jQuery插件總結(jié)(二)彈出層插件Lightbox_me.本文介紹的插件Lightbox_me可以完美的支持chrome,firefox和ie7,ie8,ie9等主流瀏...
微信掃碼,在手機(jī)上查看選中內(nèi)容