移動端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;}
效果如下:
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>"
}
})
完整代碼及示例見我的github,github地址: https://github.com/webproblem/hello-world/tree/master/dialog-View
Demo示例效果預覽地址: https://webproblem.github.io/hello-world/dialog-View/dialog.html
** 如果喜歡,請記得Star哈!**
如有不對之處,歡迎及時指出!