页面的提交按钮采用的是固定定位在页面的底部,键盘弹出后,提交按钮紧挨着键盘的上方, 输入框获得焦点后,键盘弹出,并且输入框回自动定位上方的空白处, 此时由于键盘上方固定定位的提交按钮的原因有可能会遮挡住获得焦点的输入框, 从而导致用户看不见输入框,需要用户手动滑动屏幕,移动输入框的位置,才可以进行输入内容。 解决办法: 1.监听window的大小的变化,来判断键盘的弹出和收回 2.获取输入框底部的偏移位置,即输入框底部距离可见区域上面的距离A==输入框.offsetTop-屏幕卷起的高度 3.获得可见区间的高度B==window.height-提交按钮的高度 4.将AB进行比较,调整屏幕滚动的距离,从而将输入框定位到可见区域的位置,让用户可以输入
ps:如果页面当中有很多个输入框,判断什么时候进行手动设置屏幕滚动的距离
window.height-提交按钮的高度>输入框底部距离可见区域上面的距离A>输入框底部距离可见区域上面的距离A在这个范围内 都需要手动操作屏幕卷起的高度 差值==输入框底部距离可见区域上面的距离A-(window.height-提交按钮的高度)
$scope.$watch(function(){ return $window.innerHeight; }, function(value) { if(value< me.winH){ setTimeout(function(){ var scrollTop=parseInt($(".consultApplyScroll .scroll").css("transform").split(",")[1].slice(0,-2)); var offsetTop=$("#confirmedDate")[0].offsetTop; var sub=((offsetTop+scrollTop)-(value-44)); var inputH=$('.textarea').eq(1).height(); sub=sub>0&&(offsetTop+scrollTop)>(value-44)&&(offsetTop+scrollTop)<(value+inputH)?sub:0; var valuescrollTop=scrollTop-sub; $(".consultApplyScroll .scroll")[0].style.webkitTransform="translate(0px,"+valuescrollTop+"px) scale(1) translateZ(0px)"; },500); }else{ $sys.getScroll("consultApplyScroll").resize(); } });
以上就是angular监听移动端键盘的弹起和收回的方法的详细内容,更多请关注php中文网其它相关文章!
![php中文网最新课程二维码](/static/images/article_wechat2021.jpg?1111)
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
- 上一篇:用插件实现二维码生成笔记
- 下一篇:什么是js特效遮罩层
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论