摘要:構(gòu)造函數(shù)的原型方法合并自定義參數(shù)移除已存在的彈窗原型中提供了和方法。方法可以接受參數(shù),也是一個(gè)參數(shù)對(duì)象,與在構(gòu)造函數(shù)中的方法一樣,主要是為了方便更改彈窗功能。
簡(jiǎn)易彈窗 開發(fā)說明
項(xiàng)目使用原型對(duì)象的方式實(shí)現(xiàn)彈窗的基本功能
項(xiàng)目依賴jquery,如果使用zepto,可能需要改動(dòng)代碼,未測(cè)試,有問題請(qǐng)反饋,及時(shí)解決
項(xiàng)目提供了可定制彈窗,可以自定義按鈕,標(biāo)題,以及對(duì)應(yīng)按鈕的回調(diào)函數(shù)
樣式完全可以按照自己的需求自定義,很靈活。
css樣式/*dialog*/ body.locked{overflow-y:hidden;} .dialog-box{ width:100%;height:100%;max-width:720px;position: fixed;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,0.3);z-index:1000;display:none;} .dialog-box .dialog-content{width:460px;padding:30px 10px;height:auto;border-radius:10px; background: #ffffff;min-height:100px;position:absolute;top:50%;left:50%; transform: translate(-50%,-50%);-o-transform: translate(-50%,-50%);-moz-transform: translate(-50%,-50%); -webkit-transform: translate(-50%,-50%);z-index:1001;} .dialog-box .dialog-title,.dialog-box .dialog-btn{color:#666666;font-size: 30px;text-align:center;} .dialog-box .dialog-title{padding:0 12px;} .dialog-box .dialog-btns{text-align:center;} .dialog-box .dialog-btn{display:inline-block;width:130px;margin:28px 44px 0;border-radius: 4px;height:56px;line-height: 56px;} .dialog-box .dialog-cancel-btn{background: #ffffdffffd;} .dialog-box .dialog-confirm-btn{background: #9cbf42;color:#ffffff;} .store-switch-tip{color:#9cbf42;font-size: 30px;padding:0 6px;} 基本樣式設(shè)置,可以根據(jù)自己的需求自定義樣式彈窗構(gòu)造函數(shù)
Dialog = function( options ){ var defaultOptions = { container : "dialog-box", btns : [ { klass : "dialog-cancel-btn", txt:"取消"}, { klass : "dialog-confirm-btn", txt : "確認(rèn)"} ] }; // 合并自定義參數(shù) this.options = $.extend({}, defaultOptions, options || {}); }; 1. options : 參數(shù)對(duì)象,如果不傳則系統(tǒng)默認(rèn),參數(shù)類型必須是對(duì)象,與定義的defaultOptions格式一致 2. $.extend() :合并參數(shù),不知道其用法的,請(qǐng)查閱相關(guān)資料。構(gòu)造函數(shù)的原型方法
Dialog.prototype = { $body : $("body"), constructor : Dialog, show : function( title ){ var _self = this, args = Array.prototype.slice.apply(arguments), options = _self.options; args.shift(); _self.$body.addClass("locked"); setTimeout(function(){ $("." + options.container ).show().find(".dialog-title").html( title ); $.each(options.btns,function( k, v ){ $("." + v.klass ).data( "fn",args[k] || function(){} ); }); },30); }, init : function(opt){ var _self = this, options = $.extend({}, _self.options, opt || {}) , // 合并自定義參數(shù) btnsHTML = "", node = $("." + options.container ).remove(); // 移除已存在的彈窗 node = null; $.each( options.btns, function( k, v ){ btnsHTML += "" + v.txt + ""; }); $("組件的使用" + " ").appendTo("body"); _self._event(); return _self; }, _event : function(){ var _self = this; var options = _self.options; $("." + options.container ).on("click", ".dialog-btn", function(e){ e.stopPropagation(); _self.$body.removeClass("locked"); $("." + options.container ).hide(); $(this).data("fn")(); }); } }; 1.原型中提供了init和show方法。 init方法可以接受參數(shù),也是一個(gè)參數(shù)對(duì)象,與在構(gòu)造函數(shù)中的方法一樣,主要是為了方便更改彈窗功能。 show方法主要是做顯示處理,需要傳標(biāo)題,和相應(yīng)按鈕的回調(diào)函數(shù),并將回調(diào)函數(shù)綁定在相應(yīng)的按鈕上,以待按鈕觸發(fā)事件時(shí)回調(diào)。 2.按鈕回調(diào)函數(shù)的綁定是通過jquery中的 data 方法實(shí)現(xiàn)的,可以查閱相關(guān)的資料" + "" + "" + "" + btnsHTML + "" + "
// 實(shí)例化彈窗對(duì)象 var dialog = new Dialog(); // var dialog = new Dialog({ // 可以配置相應(yīng)的參數(shù),也可以不配置使用默認(rèn),默認(rèn)是一個(gè)確認(rèn)一個(gè)取消,注意參數(shù)格式,請(qǐng)參照默認(rèn)參數(shù)配置 // }); dialog.init(); // 初始化彈窗 dialog.show("我是標(biāo)題",function(){ alert("按鈕1觸發(fā)后的回調(diào)!") },function(){ console.log("按鈕2的回調(diào)函數(shù)!"); }[,...]);// 注意回調(diào)函數(shù)要和按鈕一一對(duì)應(yīng)。 當(dāng)然你也可以連著寫 如:dialog.init().show(); 如果需要的話,你也可以在彈窗初始話的時(shí)候傳參,修改默認(rèn)配置參數(shù)。在實(shí)例化后,是雙按鈕,然后有需要一個(gè)但按鈕。 這時(shí)你無需在創(chuàng)建一個(gè)彈窗實(shí)例,直接調(diào)用實(shí)例的init方法,配置相應(yīng)的參數(shù)即可。你可以這樣使用: dialog.init({ btns : [ { klass : "dialog-confirm-btn", txt : "知道了"} ] }).show("我只有一個(gè)按鈕哈",function(){alert("點(diǎn)擊我的回調(diào)哈")});
如在使用過程中遇到任何問題,或者有更好的方案歡迎留言,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89566.html
摘要:構(gòu)造函數(shù)的原型方法合并自定義參數(shù)移除已存在的彈窗原型中提供了和方法。方法可以接受參數(shù),也是一個(gè)參數(shù)對(duì)象,與在構(gòu)造函數(shù)中的方法一樣,主要是為了方便更改彈窗功能。 簡(jiǎn)易彈窗 開發(fā)說明 項(xiàng)目使用原型對(duì)象的方式實(shí)現(xiàn)彈窗的基本功能 項(xiàng)目依賴jquery,如果使用zepto,可能需要改動(dòng)代碼,未測(cè)試,有問題請(qǐng)反饋,及時(shí)解決 項(xiàng)目提供了可定制彈窗,可以自定義按鈕,標(biāo)題,以及對(duì)應(yīng)按鈕的回調(diào)函數(shù) 樣式...
移動(dòng)端彈窗插件第二版,包括常見的 alert、confirm、toast、notice 四種類型彈窗,支持 jQuery 和 Zepto 庫。 特性 支持常見的 alert、confirm、toast、notice 四種類型彈窗 可選擇使用 IOS 或者 Material Design 風(fēng)格的彈窗 可自定義按鈕的文字、樣式、回調(diào)函數(shù),支持多個(gè)按鈕 多個(gè)彈窗狀態(tài)改變回調(diào)函數(shù) 同時(shí)支持 jQuery...
摘要:在隨后的版本中,團(tuán)隊(duì)一直在修改原生彈窗的表現(xiàn)。所以這種原生彈窗的最大用處不是用來提示用戶信息,而是傷害用戶。團(tuán)隊(duì)在中移除了對(duì)彈窗的支持。獲取用戶輸入可以用中的元素。作為的元素,目前除了和以外,其它瀏覽器均未支持。 自 1995 年 JavaScript 誕生之初,就包含了 3 個(gè)方法 alert()、confirm() 和 prompt()。在隨后的 Chrome 版本中,Chrome...
摘要:三更新內(nèi)容在原來項(xiàng)目的基礎(chǔ)上,做了如下更新數(shù)據(jù)庫重新設(shè)計(jì),改成以用戶分組的數(shù)據(jù)庫結(jié)構(gòu)應(yīng)數(shù)據(jù)庫改動(dòng),所有接口重新設(shè)計(jì),并統(tǒng)一采用和網(wǎng)易立馬理財(cái)一致的接口風(fēng)格刪除原來游客模式,增加登錄注冊(cè)功能,支持彈窗登錄。 這個(gè)項(xiàng)目最初其實(shí)是fork別人的項(xiàng)目。當(dāng)初想接觸下mongodb數(shù)據(jù)庫,找個(gè)例子學(xué)習(xí)下,后來改著改著就面目全非了。后臺(tái)和數(shù)據(jù)庫重構(gòu),前端增加了登錄注冊(cè)功能,僅保留了博客設(shè)置頁面,但是...
閱讀 3829·2021-10-12 10:11
閱讀 3648·2021-09-13 10:27
閱讀 2555·2019-08-30 15:53
閱讀 1983·2019-08-29 18:33
閱讀 2198·2019-08-29 14:03
閱讀 1004·2019-08-29 13:27
閱讀 3327·2019-08-28 18:07
閱讀 796·2019-08-26 13:23