在IOS下,點擊頁面中的input時,彈出軟鍵盤時,如果input比較靠下,整個頁面會上移,document.body.scrollOffset會由0變成大於0。 軟鍵盤消失後,頁面會下移。但是document.body.scrollOffset並不會變成0,所以這時候觸控不準,點擊上面的按鈕,下面的按鈕會有反應,看起來非常古怪。 解決方法很簡單,以下代碼即可:
$('textarea,input').on('blur', function (event) {
if (!(event.relatedTarget && (event.relatedTarget.tagName === 'INPUT' || event.relatedTarget.tagName === 'TEXTAREA')))
document.body.scrollTop = 0;
});
在安卓下,彈出軟鍵盤時,頁面會被壓小,並不上移,不會出現這個bug.