移動端dialog組件

移動端dialog組件

dialogView是滿足移動端下,用戶自定義的dialog組件,API可擴展性強,使用便捷。現版本是基于jquery庫編寫的,在使用之前需要引入jquery庫或者Zepto庫,后續將會和其他組件整合成一個輕量級UI組件庫中。

引用

頁面引入dialog.min.js和dialog.min.css

使用講解

組件提供了一個全局dialogView接口,和一個open()主函數,使用的時候只需要dialogView.open()就可以了。

dialogView提供了常用的幾種移動端dialog類型:alert,confirm,msg,footConfirm,footMsg。對前3種常用類型的dailog彈窗,暴露出了3個函數,便于使用,如dialogView.alert(),dialogView.confirm()和dialogView.msg(),三個函數擁有默認的類型值,所以使用這三個函數時不需要傳入type值,當然也可以這樣使用:dialogView.open({type:"alert"}),dialogView.open({type:"confirm"}),dialogView.open({type:"msg"})。

dialogView支持鏈式調用,如:dialogView.alert({message: "alert默認信息框"}).open({type:"footMsg",message: "我是提示類型框"})。

并且還暴露出了一個close()函數,用于關閉彈窗,使用如下:dialogView.close(),close()函數只支持傳入一個參數,即需要關閉的彈窗的DOM元素,不傳參時,將會默認關閉頁面上所有的彈窗。

參數

message: 彈窗區域內容,參數類型可以是String類型,也可以是DOM對象。

type: 彈窗類型,參數類型為String類型,提供了5種默認的類型:alert,confirm,msg,footConfirm,footMsg,彈窗類型值可供用戶自行擴展。

showTime: 彈窗顯示時長,參數類型為Number類型。

className: 自定義class名,參數類型為String類型,會在彈窗的最外層元素上擴展class,一般用于特殊情況下使用。

skin: 彈窗區域自定義皮膚,參數類型為String類型,用于擴展彈窗區域的樣式,其值會被擴充為彈框的class,比如你想給彈窗換掉默認背景色,換成自己定義的顏色,就可以先在樣式文件中定義好一個class樣式,然后skin值為定義的class值就可以了,用法如下:

dialogView.open({
    type: "msg",
    message: "我是提示類型框",
    shade: false,
    skin: "dialog-msg" //自定義的皮膚樣式
})

項目的css文件下定義dialog-msg樣式:

.mobile-dialogView .dialogView-m-main .dialog-msg{background-color:blue;}

效果如下:


demo-img

styles: 彈窗區域添加自定義css樣式,與skin值得作用一致,不同的是skin參數值的自定義css樣式是定義在樣式文件中的,而styles值則是直接擴展到行內樣式中,如:

dialogView.open({
    type: "footmsg",
    animate: "up",
    message: $("#info").show() || document.getElementById("info"),
    styles: "position: fixed;height: 100%;width: 100%;padding: 0;bottom: 0px;opacity: 1;", //自定義css樣式,將直接擴展為行內樣式
    showTime: 3000
})

shade: 是否需要遮罩層,參數類型為Boolean值。

shadeClose: 點擊彈窗以外的區域是否關閉彈窗,參數類型為Boolean值。

closeable: 點擊button按鈕是否關閉彈窗,參數類型為Boolean值,默認值是true,如有特殊情況點擊按鈕不需要關閉彈窗,將改值設置為false就可。

animate: 彈窗動畫效果,定義了兩種彈窗動畫效果,值為“open”和"up",第一種彈窗顯示效果"open",其對應的關閉效果是"close",另一種彈窗顯示效果"up",其對應的關閉效果是"down",默認動畫效果為“open”。

buttons: 彈窗按鈕組,參數類型為Array值,當dialog類型是alert時,有且只允許添加一個按鈕,當dailog類型值是confirm或者footConfirm時,有且只允許添加兩個按鈕,當dailog類型值是msg或者footMsg時,不會添加任何按鈕,其他dailog類型,用戶寫了多少按鈕,就往按鈕組添加多少按鈕。
按鈕的參數類型為Object鍵值對類型,有以下幾種參數:

  • text: 按鈕文字,參數類型可以是String類型
  • skin: 自定義按鈕皮膚,使用如上面所述
  • callback: 回調函數,點擊按鈕時觸發
  • closeable:參數類型為Boolean值,用于判定按鈕點擊之后是否關閉彈窗,默認值為true。

使用如下:

dialogView.confirm({
    message: "要前往我的github嗎?",
    buttons: [{
        skin: "yes",
        text: "可以",
        callback: function(){
            window.location.;
        }
    },{
        skin: "no",
        text: "不要"
    }]
})

注: 在彈窗里的DOM元素上添加closeable=true屬性,點擊該DOM元素時會觸發事件關閉彈窗,比如在自定義的標題上添加一個關閉按鈕圖標,使其點擊時觸發關閉事件,可以這樣使用:

dialogView.open({
    title: {
        content: "<span>我是自定義標題</span><i class='demo-title-close' closeable=true></i>"
    },
    message: "自定義風格標題,第一個參數為標題內容,第二個參數為自定義的樣式,<br>關閉按鈕是自定義加上去的哦!"
})

title: 自定義標題區域,參數類型為Object鍵值對類型,有三個參數,一個參數是content,對應的值為自定義標題內容,參數類型可以是String類型,也可以是DOM對象。另兩個參數是styles和skin,都是為自定義標題添加的樣式,兩個參數的區別如上面所述的一樣。用法如下:

dialogView.open({
    title: {
        content: "<span>我是自定義標題</span>"
    }
})
demo-img.PNG

完整代碼及示例見我的github,github地址: https://github.com/webproblem/hello-world/tree/master/dialog-View
Demo示例效果預覽地址: https://webproblem.github.io/hello-world/dialog-View/dialog.html
** 如果喜歡,請記得Star哈!**
如有不對之處,歡迎及時指出!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容