微信小程序自定義用戶登錄彈窗
本文實例為大傢分享瞭微信小程序自定義用戶登錄彈窗的具體代碼,供大傢參考,具體內容如下
view
<button class="btn" bindtap="powerDrawer" data-statu="open">立即進入</button> <!--mask:彈出框--> <view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view> <!--content--> <!--使用animation屬性指定需要執行的動畫--> <view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}"> <!--drawer content--> <view class="drawer_title">請填寫</view> <view class="drawer_content"> <!-- denglu --> <view class='top_line'></view> <view class='name'>姓名</view> <input class='btn' type="text" placeholder='請輸入答題人姓名' maxlength='12'value="" bindinput ="userNameInput" ></input> <view class='line'></view> <view class='call'>手機號</view> <input class='btn' type="text" placeholder='請輸入手機號' maxlength='11 'value="" bindinput ="mobileInput" ></input> <view class='line'></view> </view> <button class='btn_ok' type="submit" bindtap='btnclick' >快速進入</button> <view class="btn_ok" bindtap="powerDrawer" data-statu="close">取消</view> </view>
css
/*css*/ .drawer_screen { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 1000; background: #000; opacity: 0.75; overflow: hidden; } .drawer_box { width: 650rpx; overflow: hidden; position: fixed; top: 50%; left: 0; z-index: 1001; background: #FAFAFA; margin: -150px 50rpx 0 50rpx; border-radius: 15px; } .drawer_title{ padding:15px; font: 20px "microsoft yahei"; text-align: center; font-size: 30rpx; } .drawer_content { height: 170px; overflow-y: scroll; /*超出父盒子高度可滾動*/ } .btn_ok{ padding: 10px; font: 30rpx "microsoft yahei"; text-align: center; border-top: 1px solid #E8E8EA; color: #3CC51F; } .top{ padding-top:8px; } .bottom { padding-bottom:8px; } .title { height: 30px; line-height: 30px; width: 160rpx; text-align: center; display: inline-block; font: 300 28rpx/30px "microsoft yahei"; } .input_base { border: 2rpx solid #ccc; padding-left: 10rpx; margin-right: 50rpx; } .input_h30{ height: 30px; line-height: 30px; } .input_h60{ height: 60px; } .input_view{ font: 12px "microsoft yahei"; background: #E8E8EA; color:#000; line-height: 30px; } input { font: 12px "microsoft yahei"; background: #E8E8EA; color:#000 ; } radio{ margin-right: 20px; } .grid { display: -webkit-box; display: box; } .col-0 {-webkit-box-flex:0;box-flex:0;} .col-1 {-webkit-box-flex:1;box-flex:1;} .fl { float: left;} .fr { float: right;} .name{ text-align: center; font-size: 30rpx; width: 90%; margin: auto; margin-top: 30rpx; } .btn{ text-align: center; font-size: 30rpx; height: 60rpx; width: 90%; margin: auto; margin-top: 20rpx; background-color: #FAFAFA; border-bottom: 1rpx solid #999999; } .call{ font-size: 30rpx; text-align: center; width: 90%; margin: auto; margin-top: 45rpx; }
js
//自定義彈框 powerDrawer: function (e) { // wx.removeStorageSync('xingming') // wx.removeStorageSync('phone') var currentStatu = e.currentTarget.dataset.statu; this.util(currentStatu) }, util: function(currentStatu){ /* 動畫部分 */ // 第1步:創建動畫實例 var animation = wx.createAnimation({ duration: 200, //動畫時長 timingFunction: "linear", //線性 delay: 0 //0則不延遲 }); // 第2步:這個動畫實例賦給當前的動畫實例 this.animation = animation; // 第3步:執行第一組動畫 animation.opacity(0).rotateX(-100).step(); // 第4步:導出動畫對象賦給數據對象儲存 this.setData({ animationData: animation.export() }) // 第5步:設置定時器到指定時候後,執行第二組動畫 setTimeout(function () { // 執行第二組動畫 animation.opacity(1).rotateX(0).step(); // 給數據對象儲存的第一組動畫,更替為執行完第二組動畫的動畫對象 this.setData({ animationData: animation }) //關閉 if (currentStatu == "close") { this.setData( { showModalStatus: false } ); } }.bind(this), 200) // 顯示 if (currentStatu == "open") { this.setData( { showModalStatus: true } ); } }, //登錄 userNameInput: function (e) { this.setData({ userName: e.detail.value }) }, mobileInput: function (e) { this.setData({ mobile: e.detail.value }) }, btnclick:function(){ var userName = this.data.userName; var mobile = this.data.mobile; var flag = true; var phonetel = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/; var name = /^[u4E00-u9FA5]+$/; if (userName == '') { wx.showToast({ title: '請輸入用戶名', icon: 'none', duration: 2000, mask: true }) flag = false; } else if (mobile == '') { wx.showToast({ icon: 'none', duration: 2000, title: '手機號不能為空', }) flag = false; } else if (mobile.length != 11) { wx.showToast({ title: '手機號長度有誤!', icon: 'none', duration: 2000, }) flag = false; } var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1})|(17[0-9]{1}))+\d{8})$/; if (!myreg.test(mobile)) { wx.showToast({ title: '請輸入正確信息!', icon: 'none', duration: 2000, }) flag = false; } if(flag==true){ // console.log(this.data.userName) // console.log(this.data.mobile) wx.setStorageSync('xingming',this.data.userName) wx.setStorageSync('phone',this.data.mobile) wx.navigateTo({ url: '/pages/wenda/wenda', }) } },
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。