android原生底部按钮中间变大,android->按钮底部定位上移

写在前面:以前的自己,可以专心致志的做事情,现在的自己,每次投入学习就像热锅上的蚂蚁,沸腾着。改变状态,从一个小博客开始。

前面一节讲了ios遇到的坑,本周自己又一次遇到了安卓的坑

原生和vue上的解决方式

1.安卓坑之软键盘弹起来 就不是你的背景图了哦~

实现的功能为一个表单,如下图所示 ,

20191020201801450413.png

表单的白色框是填充整个的内部的,就是手机屏幕不管多大,白色的框都必须给我撑开//父盒子

.bank-list-form{min-height:100%;height:100%;width:background:url("xxx.png");background-size://子盒子.bank-wrapper {

width:min-height:100%;//和父盒子高度保持一致 且撑满整个屏幕

}

}

坑点1: 整个页面的背景是一个图片,当软键盘弹起来时,背景图会被压缩变形,效果图就不展示了,更改以此方式,设置背景图的一个背景高度

温馨提示1:对于这种大图片作为背景,一定要no-repeat 不然 会有大屏的手机下面的部分显示白边

background-size: [email protected] cover;

cover 覆盖整个页面高度 而设置宽度只要是为了防止页面高度变化时,向两个拉开

坑点2:页面按钮绝对定位到底部时,软键盘弹起来导致按钮跟着上来

正常的写法:

.bank-wrapper {

width: [email protected];

min-height: 100%;

position: relative;

.bottom-fixed{

position: absolute;

bottom: [email protected];

width: [email protected];

}

}

父元素相对定位,自元素绝对定位就可以了,但是在安卓中,会发现,软键盘弹起来,按钮就会上去,导致页面的样式错乱,在小屏幕的浏览器中也会出现这种情况,

产生的原因分析:由于页面内部的白色输入框部分的高度是依赖于整体的高度,而整体的高度为100%,导致内部的高度也为100%,高度不够用,底部相对定位的按钮自然就会定位到一个和输入框表单重叠的位置。

20191020201801745346.png

先解决重叠的问题:按钮始终在输入框表单的下部分,设置白色表单框的下部分padding-bottom>按钮的高度,这样高度是自然够了,在小屏幕的手机中,立即申请按钮也不会覆盖表单框了。

继续相连问题,按钮不会重叠了,但是软键盘弹起来,整个页面的height就会变小,而会导致页面变形,

var windheight = $(window).height(); //获取页面变形前高度

$(window).resize(function(){

var docheight = $(window).height();

if(docheight < windheight){

$("body").css("height",windheight); //当软键盘弹起来的时候自动设置页面的高度为原高度,这样就好了

}else{

$("body").css("height","100%"); //软键盘落下去回到原来的高度

}

});

在整个问题解决中,注意点有两个:定位在底部的按钮和背景的图片。

2.vue中如何解决

.commpn-apply{background:url("xxx") no-repeat;background-size:100% 482px;padding-left:30px;padding-right:30px;height:100vh; box-sizing:border-box;display:flex;flex-direction:column;

.son{

height:100%

}

}

解决方式: 媒体查询方法,页面变化时,给盒子高度

@media (min-width: 320px) {

.commpn-apply {

min-height: 568px;

height: 100vh;

}

}

@media (min-width: 375px) {

.commpn-apply {

min-height: 667px;

height: 100vh;

}

}

原文:https://www.cnblogs.com/mfyngu/p/11708307.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值