原生js封装的弹框插件
原生javascript
弹框
插件
介于旧版本的弹框插件不是很好用,
所以,笔者在vue框架里面上传了另一版的弹框插件
新版本弹框亮点:
1、完全基于原生js,可以移植到其他框架语言项目(前提是支持es6,或者能够编译降级)
2、引用限制:老版本弹框,由于插入节点的性质,因此一次只能打开一个弹框。新版本弹框只会在调用时才会插入相应节点,且无打开弹框数目限制,更符合项目实际需求
3、视觉层面:新版本弹框做了适度的过渡效果,不至于太生硬
4、性能层面:老版本弹框大量使用了定时器,新版本弹框只在必要时引入,但新版本是直接操作节点的,因此性能消耗大致相当(脑补)
5、代码层面:新版本弹框使用较多es6语法,且代码书写较老版本稍微规范,更容易阅读、维护和改写
6、新版本弹框支持更多的弹框选择(新增success、error、progress)
7、支持的方法:新版本open方法更加稳定,支持打开各类弹框;close方法也更加稳定;支持changeMsg方法改变弹框显示的信息
补充:
1、由于自身限制,弹框插件可能存在诸多槽点,各位在使用的时候欢迎指出
框架github仓库地址
新版弹框相对目录:src/components/dialog/
一、 各类弹窗的调用
1.1、加载对话框
调用:
方法一: this.$dialog.loading(msg,clickClose,callback)
方法二: this.$dialog.open({
type: 'loading',
msg: '',
clickClose: true,
callback: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'加载中...' |
clickClose |
boolean |
是否支持点击模态关闭 |
非必填 |
false |
callback |
function |
对话框关闭触发的回调函数 |
非必填 |
|
1.2、警告对话框
调用:
方法一: this.$dialog.alert(msg,ensure)
方法二: this.$dialog.open({
type: 'alert',
msg: '',
ensure: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
ensure |
function |
点击确认按钮触发的回调函数 |
非必填 |
|
1.3、确认对话框
调用:
方法一: this.$dialog.confirm(msg,ensure,cancel)
方法二: this.$dialog.open({
type: 'confirm',
msg: '',
ensure: function(){},
cancel: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
ensure |
function |
点击确认按钮触发的回调函数 |
非必填 |
|
cancel |
function |
点击取消按钮触发的回调函数 |
非必填 |
|
1.4、输入对话框
调用:
方法一: this.$dialog.prompt(msg,value,ensure,cancel)
方法二: this.$dialog.open({
type: 'prompt',
msg: '',
value: '',
ensure: function(){},
cancel: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
value |
string、number |
初始化文本框值,回调函数传的参数 |
必填 |
|
ensure |
function |
点击确认按钮触发的回调函数 |
非必填 |
|
cancel |
function |
点击取消按钮触发的回调函数 |
非必填 |
|
1.5、普通信息对话框
调用:
方法一: this.$dialog.msg(msg,timeout,callback)
方法二: this.$dialog.open({
type: 'msg',
msg: '',
timeout: 3,
callback: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
timeout |
number |
定时关闭对话框 |
非必填 |
3000 |
callback |
function |
对话框关闭触发回调函数 |
非必填 |
|
1.6、成功信息对话框
调用:
方法一: this.$dialog.success(msg,timeout,callback)
方法二: this.$dialog.open({
type: 'success',
msg: '',
timeout: 3,
callback: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
timeout |
number |
定时关闭对话框 |
非必填 |
3000 |
callback |
function |
对话框关闭触发回调函数 |
非必填 |
|
1.7、失败信息对话框
调用:
方法一: this.$dialog.error(msg,timeout,callback)
方法二: this.$dialog.open({
type: 'error',
msg: '',
timeout: 3,
callback: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
msg |
string |
显示的文本信息 |
非必填 |
'请输入确认内容!' |
timeout |
number |
定时关闭对话框 |
非必填 |
3000 |
callback |
function |
对话框关闭触发回调函数 |
非必填 |
|
1.8、进度条对话框
调用:
方法一: this.$dialog.progress(current,total,clickClose,callback)
方法二: this.$dialog.open({
type: 'progress',
current: '10M',
total: '123M',
clickClose: false,
callback: function(){}
})
参数 |
类型 |
说明 |
必填选项 |
默认值 |
current |
string |
当前已完成量,最好数值加单位(如:12k) |
必填 |
|
total |
string |
总任务大小,最好数值加单位(如:150k) |
必填 |
|
clickClose |
boolean |
是否支持点击关闭 |
非必填 |
false |
callback |
function |
对话框关闭触发回调函数 |
非必填 |
|
二、其他方法
2.1 关闭指定弹框
调用:this.$dialog.close(id)
每个弹框在生成的时候都附有指定的id
例:let id = this.$dialog.loading('loading...')
this.$dialog.close(id)
2.2 关闭所有弹框
调用: this.$dialog.closeAll()
2.3 更改指定弹框的文本信息
调用: this.$dialog.changeMsg(id,msg)
id: 指定对话框id; msg: 要替换成的信息
2.4 更改指定进度框信息
调用: this.$dialog.changeProgress(id,current,total)
id: 指定对话框id; current: 当前完成量; total: 总任务量