微信小程序 弹窗输入组件的实现解析
写项目的时候发现小程序没有自带的弹窗输入的组件,只能自己写一个。
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:0auto; 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:1pxsolid; 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; } .bodybutton{ 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:0auto; 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:1pxsolid; 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 }) } })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。