### [使用小程序写一个弹窗输入组件](https://www.prosaas.cn/article/16590)
**Published:** 2020-06-29T02:50:04
**Author:** 5201314
**Excerpt:** 写项目的时候发现小程序没有自带的弹窗输入的组件,只能自己写一个。1.半透明的遮盖层遮盖层的样式和显隐事件wxm…
写项目的时候发现小程序没有自带的弹窗输入的组件,只能自己写一个。
##### 1.半透明的遮盖层
遮盖层的样式和显隐事件
wxml代码:
wxss代码:
.model{
position: absolute;
width: 100%;
height: 100%;
background: #000;
z-index: 999;
opacity: 0.5;
top: 0;
left:0;
}
js代码:
/\*\*
\* 页面的初始数据
\*/
data: {
showModal: false,
},
/\*\*
\* 控制遮盖层的显示
\*/
eject:function(){
this.setData({
showModal:true
})
}
##### 2.弹窗窗口实现
弹窗窗口的样式和显隐事件
wxml代码:
标题
返回
wxss代码:
.modalDlg{
width: 70%;
position: fixed;
top:350rpx;
left: 0;
right: 0;
z-index: 9999;
margin: 0 auto;
background-color: #fff;
border-radius: 10rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.windowRow{
display: flex;
flex-direction: row;
justify-content: space-between;
height: 110rpx;
width: 100%;
}
.back{
text-align: center;
color: #f7a6a2;
font-size: 30rpx;
margin: 30rpx;
}
.userTitle{
font-size: 30rpx;
color: #666;
margin: 30rpx;
}
.wishName{
width: 100%;
justify-content: center;
flex-direction: row;
display: flex;
margin-bottom: 30rpx;
}
.wish\_put{
width: 80%;
border: 1px solid;
border-radius: 10rpx;
padding-left: 10rpx;
}
.wishbnt{
width: 100%;
font-size: 30rpx;
margin-bottom: 30rpx;
}
.wishbnt\_bt{
width: 50%;
background-color: #f7a6a2;
color: #fbf1e8;
font-size: 30rpx;
border: 0;
}
js代码:
/\*\*
\* 页面的初始数据
\*/
data: {
showModal: false,
textV:''
},
/\*\*
\* 控制显示
\*/
eject:function(){
this.setData({
showModal:true
})
},
/\*\*
\* 点击返回按钮隐藏
\*/
back:function(){
this.setData({
showModal:false
})
},
/\*\*
\* 获取input输入值
\*/
wish\_put:function(e){
this.setData({
textV:e.detail.value
})
},
/\*\*
\* 点击确定按钮获取input值并且关闭弹窗
\*/
ok:function(){
console.log(this.data.textV)
this.setData({
showModal:false
})
}
##### 3.完整代码
最后献上完整代码,有点啰嗦了,想尽量详细点
wxml代码:
标题
返回
wxss代码:
.body{
width: 100%;
height: 100%;
background-color: #fff;
position: fixed;
display: flex;
}
.body button{
height: 100rpx;
}
.model{
position: absolute;
width: 100%;
height: 100%;
background: #000;
z-index: 999;
opacity: 0.5;
top: 0;
left:0;
}
.modalDlg{
width: 70%;
position: fixed;
top:350rpx;
left: 0;
right: 0;
z-index: 9999;
margin: 0 auto;
background-color: #fff;
border-radius: 10rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.windowRow{
display: flex;
flex-direction: row;
justify-content: space-between;
height: 110rpx;
width: 100%;
}
.back{
text-align: center;
color: #f7a6a2;
font-size: 30rpx;
margin: 30rpx;
}
.userTitle{
font-size: 30rpx;
color: #666;
margin: 30rpx;
}
.wishName{
width: 100%;
justify-content: center;
flex-direction: row;
display: flex;
margin-bottom: 30rpx;
}
.wish\_put{
width: 80%;
border: 1px solid;
border-radius: 10rpx;
padding-left: 10rpx;
}
.wishbnt{
width: 100%;
font-size: 30rpx;
margin-bottom: 30rpx;
}
.wishbnt\_bt{
width: 50%;
background-color: #f7a6a2;
color: #fbf1e8;
font-size: 30rpx;
border: 0;
}
js代码:
Page({
/\*\*
\* 页面的初始数据
\*/
data: {
showModal: false,
textV:''
},
/\*\*
\* 控制显示
\*/
eject:function(){
this.setData({
showModal:true
})
},
/\*\*
\* 点击返回按钮隐藏
\*/
back:function(){
this.setData({
showModal:false
})
},
/\*\*
\* 获取input输入值
\*/
wish\_put:function(e){
this.setData({
textV:e.detail.value
})
},
/\*\*
\* 点击确定按钮获取input值并且关闭弹窗
\*/
ok:function(){
console.log(this.data.textV)
this.setData({
showModal:false
})
}
})
推荐教程:《微信小程序》
以上就是使用小程序写一个弹窗输入组件的详细内容,更多请关注知企PROSAAS其它相关文章!
**Tags:** JS, 事件, 微信小程序
**Categories:** 后端开发
---