寫在前面:
在準(zhǔn)備寫這篇文章之前發(fā)生了一些小插曲顷霹,今天又因?yàn)镃SS上的問題被揪出來說事坡锡。本來想在正文前寫一些初級(jí)前端的碰到這種雞毛蒜皮的事情如何應(yīng)對策州,后來想想還是不費(fèi)腦汁了钉蒲,WHO CARE岖妄,我的理解中前端的重點(diǎn)應(yīng)該是編寫框架的能力型将,至于那些不帶邏輯的東西,改起來也很方便好吧
正文開始:
源碼地址:https://github.com/dingjiamughal/components/blob/master/componentDialog.html(鏈接太長不能自動(dòng)換行荐虐,加個(gè)word-wrap:word-break;嘛)
效果演示:https://dingjiamughal.github.io/components/componentDialog.html
首先還是先搭建組件開發(fā)的基本結(jié)構(gòu):
第二步七兜,完善原型方法:
viewWidth():return document.documentElement.clientWidth;
viewHeight():return document.documentElement.clientHeight;
以上基本功能完善腕铸,值得注意的地方:
在createMark中的oMark是執(zhí)行createMark時(shí)定義的變量惜犀。在fnClose中需要remove遮罩,因此需要把oMark暴露成全局變量 —— this.oMark=oMark;接下來只要在init中調(diào)用create()和fnclose()即可狠裹,但是有個(gè)問題虽界,此時(shí)并沒有保存按鈕點(diǎn)擊的狀態(tài)(當(dāng)dialog彈出時(shí),禁止點(diǎn)擊)
定義json方法涛菠,將狀態(tài)保存在json中莉御,iNow=true時(shí),彈窗才可出現(xiàn)俗冻,iNow = false時(shí)礁叔,能點(diǎn)擊關(guān)閉按鈕。
最后一步迄薄,方法調(diào)用