温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微信小程序怎么自定义用户登录弹窗

发布时间:2022-06-30 14:02:37 来源:亿速云 阅读:304 作者:iii 栏目:开发技术

这篇文章主要介绍“微信小程序怎么自定义用户登录弹窗”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么自定义用户登录弹窗”文章能帮助大家解决问题。

微信小程序怎么自定义用户登录弹窗

微信小程序怎么自定义用户登录弹窗

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_h40{
   height: 30px;
   line-height: 30px;
 }
 .input_h70{
   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',
       })
    }
  },

关于“微信小程序怎么自定义用户登录弹窗”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI