欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 微信小程序之支付密码输入demo

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:740

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:510

HTML5自适应律师工作室类网

2020-04-04   浏览:504

HTML5影视传媒文化公司类网

2020-05-12   浏览:500

微信小程序之支付密码输入demo

发布时间:2020-10-12  

在小程序中实现支付密码的输入,要解决几个问题: 
1、小程序要想唤起键盘,必须要借助input控件。通过input控件和其属性focus来唤起和隐藏输入键盘。

2、要让input控件不可见。让光标和输入的字符都不可见,这里是把input控件定位到左边不可见范围。

先看实现后的效果图:

微信小程序之支付密码输入demo

实现demo代码:

1、页面代码

 

<view catchtap='showInputLayer' class="btn_pay">立即支付</view>

<!-- 密码输入框 -->

<view wx:if='{{showPayPwdInput}}'>

<view class='bg_layer'></view>

<view class='input_main'>

<view class='input_title'>

<view class='input_back' catchtap='hidePayLayer'><text></text></view>

<text>输入支付密码</text>

</view>

<view class='input_tip'><text>使用会员卡余额支付需要验证身份,验证通过后才可进行支付。</text></view>

<view class='input_row' catchtap='getFocus'>

<view class='pwd_item' wx:for='{{6}}' wx:key='item' wx:for-index='i'>

<text wx:if='{{pwdVal.length>i}}'></text>

</view>

</view>

<view class='forget_pwd' catchtap='hidePayLayer'>忘记密码</view>

<input class='input_control' password type='number' focus='{{payFocus}}' bindinput='inputPwd' maxlength='6'/>

</view>

</view>

2、js代码

 

//index.js

//获取应用实例

const app = getApp()

 

Page({

data: {

showPayPwdInput: false, //是否展示密码输入层

pwdVal: '', //输入的密码

payFocus: true, //文本框焦点

},

onLoad: function () {

this.showInputLayer();

},

/**

* 显示支付密码输入层

*/

showInputLayer: function(){

this.setData({ showPayPwdInput: true, payFocus: true });

},

/**

* 隐藏支付密码输入层

*/

hidePayLayer: function(){

 

var val = this.data.pwdVal;

 

this.setData({ showPayPwdInput: false, payFocus: false, pwdVal: '' }, function(){

wx.showToast({

title: val,

})

});

 

},

/**

* 获取焦点

*/

getFocus: function(){

this.setData({ payFocus: true });

},

/**

* 输入密码监听

*/

inputPwd: function(e){

this.setData({ pwdVal: e.detail.value });

 

if (e.detail.value.length >= 6){

this.hidePayLayer();

}

}

})

3、样式

 

.btn_pay{

margin: 100rpx auto; width: 600rpx; height: 100rpx; line-height: 100rpx; border-radius: 100rpx;

background-color: #d3a95a; color: #fff; font-size: 36rpx; text-align: center;

}

/* 支付密码css start */

.bg_layer{

position: fixed; left: 0; top: 0; bottom: 0; right: 0;

background-color: rgba(0, 0, 0, 0.6); z-index: 9998;

}

.input_main{

position: fixed; left: 0; bottom: 500rpx; width: 100%; height: 394rpx;

background-color: #fff; z-index: 9999;

}

.input_title{

width: 100%; height: 90rpx; line-height: 90rpx; text-align: center;

font-size: 32rpx; border-bottom: 1rpx solid #e2e2e2;

}

.input_back{

position: absolute; left: 0; top: 0;

width: 80rpx; height: 90rpx; display: flex; justify-content: center; align-items: center;

}

.input_back text{

width: 20rpx;

height: 20rpx;

background-color: white;

border: 1rpx solid #aaa;

border-width: 5rpx 0 0 5rpx;

transform: rotate(-45deg);

}

 

.input_tip{ margin: 30rpx; font-size: 24rpx; color: #888; }

 

/* 密码掩码模拟 */

.input_row{

width: 690rpx; margin: 0 auto; height: 98rpx; position: relative;

display: flex; align-items: center; border: 1rpx solid #e2e2e2; border-radius: 20rpx;

}

.input_row .pwd_item{

flex: 1; display: flex; align-items: center; justify-content: center;

height: 100%; border-right: 1rpx solid #e2e2e2; position: relative;

}

.pwd_item:nth-last-of-type(1) { border-right: 0; }

.pwd_item text {

width: 30rpx; height: 30rpx; border-radius: 30rpx; background-color: #555;

}

 

 

.forget_pwd{

float: right; margin: 30rpx; width: 100rpx; text-align: right; font-size: 24rpx; color: #ff7800;

}

 

/* 文本输入框位置: 设置到左边隐藏 */

.input_control {

position: relative; left: -300rpx; bottom: 0; width: 100rpx; height: 100rpx;