一個頁面上有個固定在底部的按鈕,頁面中有個input框,點擊input框獲取焦點時,在蘋果手機上沒事,但在安卓手機上彈出的鍵盤會將按鈕頂起來,這就很不好看了,想了個辦法解決一下。之前一直覺得用input獲取焦點和失去焦點來改變底部按鈕的定位,但是有的手機可以隱藏鍵盤,但是不會失去焦點,這個方法就不行了。后來想了一下,鍵盤彈出,改變了窗口的大小,所以就想在onresize中來解決。代碼如下:
var flag = false;//先定義一個變量,當改變窗口大小的時候用來做判斷
$("input").focus(function(){//獲取焦點時,flag為true
flag = true;
});
window.onresize = function(){
if(flag){//如果flag為true,鍵盤彈起,改變底部按鈕的position,同時將flag改為false
$("button").css({"position":"initial"});
flag = false;
}else {
$("button").css({"position":"fixed"});
if(document.activeElement.id == "changeNum"){//如果只是收起鍵盤,而不失去焦點,仍然將flag設為true,否則鍵盤彈起時仍會將底部按鈕頂起
flag = true;
};
};
};