有一個輸入框(input
或者 textarea
),IOS 用戶喚起鍵盤輸入一串文字後,點擊空白區域收起鍵盤。html
鍵盤成功收起,頁面回到底部,可是點擊提交按鈕無反應。bash
鍵盤收起後,IOS沒有進行頁面重繪,從視覺上看頁面已經回彈到底部,可是邏輯層還停留在上方,因此真正的提交按鈕,在所看到按鈕的上方(一個看不見的位置)。markdown
監聽 失去焦點 事件後,手動觸發一下頁面滑動,就能夠觸發頁面重繪,解決這個鬼畜問題。spa
onBlur() { // 延遲的做用:等待其餘事件完成 setTimeout(() => { const top = document.getElementsByTagName('html')[0].offsetTop window.scroll(0, -1 * top) }, 500); } 複製代碼