当在移动端按钮position:fixed;底部bottom:0;css
固定定位后,当唤起键盘输入数据时就会出现很头疼的问题:前端
固定在底部的按钮会被系统自带的键盘挤上去,占用输入框位置;函数
如图:flex
怎么样才能让按钮固定底部,后面找到了两种方式。spa
HTMLcode
<div class="submit"> <button type="button" class="btn">提交信息</button> </div>
cssblog
.submit { display: flex; width: 100%; justify-content: center; position: fixed; bottom: 0; }
1.第一种事件
经过输入框input获取焦点/移除焦点 来控制按钮的position样式;ip
jsinput
$("input,textarea").focus(function(){ $(".submit").css("position","static"); }).blur(function(){ $(".submit").css("position","fixed"); });
效果是实现了,可是后面发现一个问题,如图:
会发现按键没有显示完整。
2.第二种
须要了解 resize()
经过resize() 方法触发 resize 事件,或规定当发生 resize 事件时运行的函数。
js
var windheight = $(window).height(); /*未唤起键盘时当前窗口高度*/ $(window).resize(function(){ var docheight = $(window).height(); /*唤起键盘时当前窗口高度*/ if(docheight < windheight){ /*当唤起键盘高度小于未唤起键盘高度时执行*/ $(".submit").css("position","static"); }else{ $(".submit").css("position","fixed"); } });
运行后显示效果
唤起时:
取消时:
这样就完美解决了相似键盘问题,固然这种方式也能够运用到其余场景当中。
前端菜鸟,多多指教