最近提測后,發現ios升級到12版本之后,引發了調用確認框的組件之后按鈕失效問題。
然后開始了升級復現bug的各種操作,最后發現是完成后鍵盤收起后,頁面沒有回滾,因為頁面整體被推上了一定高度,導致錯位,從而引起后定位顯示的確認框組件中的按鈕失效(實際的生效位置在顯示位置的上方)。
整體開發使用的是vue框架,ui框架使用的是vant,沒有再單獨引入jquery,這個問題我最后使用原生js解決的。
整體思路是,首先監聽聚焦,給一個標志位,然后在失焦的時候判斷是否為真正失焦(即其他的input是否同時被聚焦),然后在真正失焦時,重置頁面滾動高度,從而達到鍵盤收起后頁面回到原來位置的操作。