在手机端开发过程可能会遇到这样一个问题:底部有一个固定定位的按钮,然而每次一点击输入框,弹出输入法的时候,这个底部的按钮会随着输入法被顶上去。
解决方法是,调用浏览器窗口改变时执行的函数。
//原生 JS
window.onresize = function(){
console.log("窗口发生改变了哟!");
}
//css
.btns {
position: fixed;
bottom: 52px;
width: 100%;
height: 32px;
}
.btns.p_static {
position: static;
}
// js
// 使用 jquery
$(window).resize(function(event) {
if( $('.btns').hasClass('p_static') ){
$('.btns').removeClass('p_static');
}else{
$('.btns').addClass('p_static')
}
});
通过给固定定位切换定位方式来实现,调起输入法时,浏览器窗口发生改变,执行函数,将原先是固定定位的元素改为粘性定位(position:static;)。当关闭输入法时再切换回固定定位。