js解決軟鍵盤遮擋輸入框的問題分享
經(jīng)驗(yàn)須知
彈出軟鍵盤時(shí):
ios端$(‘body').scrollTop()會(huì)改變
android端$(window).height()會(huì)改變
拉起鍵盤不是一瞬間,而是有一個(gè)緩動(dòng)過程
問題重現(xiàn)
ios端,經(jīng)常會(huì)出現(xiàn)輸入法遮擋輸入框的問題(特別是那種有一個(gè)白色頂部的輸入法,如:百度輸入法),如圖:

問題解決
我們只需要在輸入框聚焦之后,開啟一個(gè)定時(shí)器,執(zhí)行$(‘body').scrollTop(1000000),這樣由于整個(gè)body滾動(dòng)到了最下面,輸入框自然就看見了,具體請(qǐng)查看以下示例
示例源碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title>demo</title>
<script src="../js/jquery-1.11.3.min.js"></script>
<style>
* {
margin: 0;
padding: 0;
}
body, html {
width: 100%;
height: 100%;
}
.bottom {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
font-size: 0;
}
input {
font-size: 14px;
box-sizing: border-box;
width: 50%;
height: 50px;
line-height: 50px;
}
</style>
</head>
<body>
<div class="bottom">
<input class="aInput" type="text" placeholder="ios聚焦后會(huì)被輸入法遮擋" />
<input class="bInput" type="text" placeholder="ios聚焦后不會(huì)被輸入法遮擋" />
</div>
</body>
<script>
$(function() {
// 解決輸入法遮擋
var timer = null;
$('.bInput').on('focus', function() {
clearInterval(timer);
var index = 0;
timer = setInterval(function() {
if(index>5) {
$('body').scrollTop(1000000);
clearInterval(timer);
}
index++;
}, 50)
})
});
</script>
</html>
以上這篇js解決軟鍵盤遮擋輸入框的問題分享就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Javascript 函數(shù)的四種調(diào)用模式
這篇文章主要介紹了Javascript 函數(shù)的四種調(diào)用模式的相關(guān)資料,需要的朋友可以參考下2016-11-11
驗(yàn)證javascript中Object和Function的關(guān)系的三段簡單代碼
今天重溫經(jīng)典書籍。這一次看的是博客園李戰(zhàn)老師寫的<<悟透JavaScript>>,也是被樓豬翻看最多的技術(shù)書籍之一。2010-06-06
使用原生javascript創(chuàng)建通用表單驗(yàn)證——更鋒利的使用dom對(duì)象
使用原生javascript創(chuàng)建通用表單驗(yàn)證——更鋒利的使用dom對(duì)象,學(xué)習(xí)js的朋友可以參考下。2011-09-09

