javascript - 移動端頁面 手機(jī)鍵盤擋住了輸入框
問題描述
正常情況
問題
每次當(dāng)手機(jī)切換app或窗口時(shí),再回到該頁面時(shí) 第一次 點(diǎn)擊輸入框,鍵盤就會把輸入框擋住,只有第一次點(diǎn)擊會擋住。這是什么原因?qū)е碌模咳缓笪野l(fā)現(xiàn)此時(shí)頁面的滾動條是沒有滾動到最底部, 所以我給輸入框聚焦時(shí)綁定了個(gè)事件$(’.input’).on(’focus’, function() {
$(window).scrollTop(99999);
});但是頁面的滾動條還是沒有滾到最底部,輸入框還是給鍵盤擋住了。
$(document) $(’body, html’) 也試過了.
問題解答
回答1:安卓瀏覽器在軟鍵盤彈出后不會像iOS瀏覽器那樣重新計(jì)算window的高度,所以導(dǎo)致安卓瀏覽器window的高度在軟鍵盤彈出的時(shí)候?yàn)椤败涙I盤的高度+(window的高度-軟鍵盤的高度)”;而其實(shí),此時(shí),合理的高度應(yīng)該是頁面的高度+軟鍵盤彈出的高度;就此解決方案為如下:
var winHeight = $(window).height(); //獲取當(dāng)前頁面高度 $(window).resize(function() {var thisHeight = $(this).height();if (winHeight - thisHeight > 50) { //當(dāng)軟鍵盤彈出,在這里面操作 //alert(’aaa’); $(’body’).css(’height’, winHeight + ’px’);} else { //alert(’bbb’); //當(dāng)軟鍵盤收起,在此處操作 $(’body’).css(’height’, ’100%’);} }); 回答2:
你這是底部輸入框樣式的問題吧,試試這個(gè)上面的方法。/a/11...
回答3:二樓正解,其實(shí)就是瀏覽器兼容性問題
回答4:好像沒有啥好辦法
相關(guān)文章:
1. docker api 開發(fā)的端口怎么獲取?2. angular.js - angularjs的自定義過濾器如何給文字加顏色?3. docker-compose 為何找不到配置文件?4. docker gitlab 如何git clone?5. MySQL數(shù)據(jù)庫中文亂碼的原因6. angular.js - 關(guān)于$apply()7. dockerfile - 我用docker build的時(shí)候出現(xiàn)下邊問題 麻煩幫我看一下8. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計(jì)表結(jié)構(gòu)的?9. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!10. css - C#與java開發(fā)Windows程序哪個(gè)好?
