怎么在微信小程序中实现一个验证码倒计时功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
首先js文件的data里面 声明一个变量用于表示当前是否可以点击,codeIsCanClick = true
, 默认是可以点击的
写下界面代码:
wxml文件中
<view class='centerRow'> <view class='inputLabel'>动态码:</view> <input class='inputStyle' 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) },
关于怎么在微信小程序中实现一个验证码倒计时功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。