要點(diǎn):
- 在android中軟鍵盤收起或彈出,都會(huì)改變window的高度,所以可通過監(jiān)聽window的onresize事件。ios中軟鍵盤收起或彈出,不會(huì)改變window的高度。
- 在ios中可軟鍵盤收起、彈出,會(huì)觸發(fā)輸入框的失焦、獲得焦點(diǎn),所以可通過輸入框的獲取焦點(diǎn)情況來做判斷。android軟鍵盤收起、彈出,不會(huì)觸發(fā)輸入框的失焦、獲得焦點(diǎn)。
實(shí)現(xiàn)
ios:
var _input = document.getElementById("gasInputBox");
_input.addEventListener("blur", function () {
// 在這里執(zhí)行鍵盤收起時(shí)的操作
});
_input.addEventListener("focus", function () {
// 在這里執(zhí)行鍵盤彈出時(shí)的操作
});
android:
window.addEventListener('resize', onResize);
let initialScreenSize = window.innerHeight
const onResize = () => {
const newSize = window.innerHeight;
if (!initialScreenSize) {
initialScreenSize = newSize;
}
const keyboardOpen = newSize < initialScreenSize;
if (keyboardOpen) {
// 在這里執(zhí)行鍵盤彈出時(shí)的操作
} else {
// 在這里執(zhí)行鍵盤收起時(shí)的操作
}
}