天天看點

ios html輕按兩下下移,【前端】ios下獲得焦點之後,頁面布局上移了一段

測試位址: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的文本框會跑到頁面中間。