欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序项目实践之验证码倒计时功能

程序员文章站 2022-05-26 13:41:38
效果如下:点击发送验证码按钮,按钮背景变色,不可点击,显示倒计时文字   首先js文件的data里面 声明一个变量用于表示当前是否可以点击,codeiscanclic...

效果如下:点击发送验证码按钮,按钮背景变色,不可点击,显示倒计时文字

微信小程序项目实践之验证码倒计时功能

  首先js文件的data里面 声明一个变量用于表示当前是否可以点击,codeiscanclick = true,  默认是可以点击的

  写下界面代码:

  wxml文件中

<view class='centerrow'>
 <view class='inputlabel'>动态码:</view>
 <input class='inputstyle' style="flex:1 " bindinput="bindkeyinput" placeholder="短信动态码" adjust-position='false'  confirm-type='search'></input>
 <button class="emailcode" hidden='{{!codeiscanclick}}' size="mini" bindtap='clickcode'>获取动态码</button>
 <button class="emailcodesend" hidden='{{codeiscanclick}}' size="mini">{{last_time}}秒后重新发送</button>
</view>

   对应样式 wxss文件:

.centerrow{
 display: flex;
 flex-direction: row;
 align-items: center;
 height: 44px;
 padding-left: 16px;
 padding-right: 16px;
 border-bottom: 1rpx solid #d9d9d9;
 border-top: 1rpx solid #d9d9d9;
}
.inputstyle{
 border-radius:4px;
 color:#d9d9d9;
 outline:0;
 padding-left: 4px;
 margin-left: 4px;
 margin-right: 20rpx;
 font-size: 14px;
}
.inputlabel{
 font-size: 16px;
 color: #33496d;
 width: 90px;
}
.emailcode{
 width: 118px;
 height: 28px;
 align-items: center;
 justify-content: center;
 display: flex;
 flex-direction: row;
 color:white;
 font-size: 14px;
 background-color: #50a2ec;
 border-radius: 14px;
}
.emailcodesend{
 width: 118px;
 height: 28px;
 align-items: center;
 justify-content: center;
 display: flex;
 flex-direction: row;
 color:white;
 font-size: 14px;
 background-color: #b9daf7;
 border-radius: 14px;
}

  以上构成页面静态效果。

  注意button有两个,分别对应的未点击和点击下的按钮样子,用js中的codeiscanclick控制显示隐藏

  然后在js中写逻辑代码:

// 倒计时事件 单位s
var countdown = 10;
var settime = function (that) {
 if (countdown == 0) {
 that.setdata({
  codeiscanclick: true
 })
 countdown = 10;
 return;
 } else {
 that.setdata({
  codeiscanclick: false,
  last_time: countdown
 })
 countdown--;
 }
 settimeout(function () {
 settime(that)
 }, 1000
 )
}
page({
 /**
 * 页面的初始数据
 */
 data: {
 codeiscanclick: true
 },
 /**
 * 点击验证码按钮
 */
 clickcode: function () {
 var that = this;
 settime(that)
 },

总结

以上所述是小编给大家介绍的微信小程序项目实践之验证码倒计时功能,希望对大家有所帮助