測試位址:http://www.yitianyishu.com/ed…
用ios打開測試,文本框獲得焦點時,有很大幾率導緻整個頁面上移了一部分,導緻頭部的工具欄被遮擋了。Android則下正常。
還有一個問題,IOS中在頁面的body上滑動時,頂部的系統url顯示欄目會存在縮放現象(頁面向上活動時,url欄目會變小,下移時則又變大,有沒有方法固定一下大小)。
求各位指教
回答
function androidInputBugFix(){
// .container 設定了 overflow 屬性, 導緻 Android 手機下輸入框擷取焦點時, 輸入法擋住輸入框的 bug
// 相關 issue: https://github.com/weui/weui/issues/15
// 解決方法:
// 0. .container 去掉 overflow 屬性, 但此 demo 下會引發别的問題
// 1. 參考 http://stackoverflow.com/questions/23757345/android-does-not-correctly-scroll-on-input-focus-if-not-body-element
// Android 手機下, input 或 textarea 元素聚焦時, 主動滾一把
if (/Android/gi.test(navigator.userAgent)) {
window.addEventListener('resize', function () {
if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
window.setTimeout(function () {
document.activeElement.scrollIntoViewIfNeeded();
}, 0);
}
})
}
}
在ios裡面,當一個文本框的樣式為fixed時候,如果這個文本框獲得焦點,它的位置就會亂掉,由于ios裡面做了自适應居中,這個fixed的文本框會跑到頁面中間。