如图,在部分手机当输入框获取焦点到失去焦点,会导致底部底部view上移偏差
C7DEA46C-3A35-45BE-9416-33C37F1B09A6.png首先自定义弹框组件布局如下图
-
payPopView.js
E5AA7AD9-36BE-4EF6-906E-6BCFF2674C7B.png
主要是获取焦点方法处理
1AF3DFB6-D5F3-4E65-A465-CDEB5D8E5291.png31B33A76-A4E2-40B5-9852-532D13179934.png
-
payPopView.json
F9E5D5B7-075E-4ADC-8D3E-E8C2D9B06BA4.png -
payPopView.ttml
1323A37B-213B-48F1-91CF-5BAD7137E366.png
1D3C08A2-2C34-4658-8177-E482B24235B1.png - payPopView.ttss就没啥好说的了
/* components/payPopView.ttss */
.popV {
display: flex;
justify-content: center;
}
.popV-mask {
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.4);
display: block;
position: fixed;
z-index: 1000;
}
.popV-content{
bottom: 0rpx;
background: white;
display: flex;
position: fixed;
z-index: 1001;
flex-direction: column;
width:750rpx;
height:884rpx;
background:rgba(255,255,255,1);
border-radius:40rpx 40rpx 0rpx 0rpx;
}
.popCnt-closeV {
display: flex;
align-items: center;
justify-content: flex-end;
}
.popCnt-closeV-img {
right: 0;
width: 44rpx;
height: 44rpx;
margin-top: 30rpx;
margin-right: 40rpx;
margin-bottom: 16rpx;
}
.popCnt-cntV {
display: flex;
flex-direction: column;
margin: 0rpx 40rpx;
}
.cntV-top {
display: flex;
width: 670rpx;
height: 186rpx;
}
.cntV-top-bg {
width: 670rpx;
height: 186rpx;
background:rgba(49,49,49,1);
box-shadow:0rpx 4rpx 16rpx 0px rgba(0,0,0,0.2);
border-radius:20rpx;
}
.cntV-line {
background-color: #E1E1E1;
width:670rpx;
height:2rpx;
margin-bottom: 38rpx;
}
/* 输入手机号 */
.cntV-phone {
background:rgba(245,245,245,1);
display: flex;
flex-direction: row;
justify-content: space-between;
height: 88rpx;
}
.cntV-phone-left {
display: flex;
flex-direction: row;
/* justify-content: center; */
align-items: center;
}
.cntV-phoneL-img {
width: 36rpx;
height: 36rpx;
margin-left: 20rpx;
margin-right: 16rpx;
}
.cntV-phoneL-text {
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(102,102,102,1);
line-height:32rpx;
white-space: nowrap;
}
.cntV-phone-right {
display: flex;
align-items: center;
margin-right: 20rpx;
}
.cntV-phoneR-text {
font-size:28rpx;
font-family:PingFangSC-Regular,PingFang SC;
font-weight:400;
color:rgba(153,153,153,1);
line-height:40rpx;
text-align: right;
}
/* 验证码 */
.cntV-code {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 22rpx;
}
.cntV-code-left {
display: flex;
flex-direction: row;
justify-content: space-between;
flex: 1;
background:rgba(245,245,245,1);
}
.cntV-code-right {
width:186rpx;
height:88rpx;
background:rgba(235,202,144,1);
margin-left: 24rpx;
display: flex;
align-items: center;
justify-content: center;
}
.cntV-code-rightGray {
background:rgba(153,153,153,1);
opacity:0.5;
}
.cntV-codeR-text {
font-size:28rpx;
font-family:PingFang-SC-Bold,PingFang-SC;
font-weight:bold;
color:rgba(255,255,255,1);
line-height:40rpx;
}
/* 确认支付 */
.cntV-payBtn {
width:670rpx;
height:98rpx;
background:rgba(204,204,204,1);
box-shadow:0rpx 4rpx 14rpx 0rpx rgba(220,220,220,1);
border-radius:49rpx;
margin-top: 60rpx;
display: flex;
align-items: center;
justify-content: center;
}
.cntV-payBtn-enable {
background:linear-gradient(180deg,rgba(255,233,195,1) 0%,rgba(222,192,140,1) 100%);
box-shadow:0px 4px 14px 0px rgba(237,215,176,1);
}
.cntV-payBtn-text {
font-size:40rpx;
font-family:PingFang-SC-Bold,PingFang-SC;
font-weight:bold;
color:rgba(49,49,49,1);
line-height:56rpx;
}
index布局如下图
-
index.js
A0E28555-7BD9-4A0D-95C3-95BEE9D9CF83.png -
index.json
0F323EFB-9AFF-43EE-8658-868B89D11EE8.png -
index.ttml
627EBB15-6559-4E5F-B92C-E918519C2777.png -
index.ttss
7BD8A15B-5186-4414-91A6-C72A93F0C15B.png
网友评论