IOSでWeChatは入力ボックスでキーボードを弾いた後、ページが回復しません.下にメモがあります.
1263 ワード
iosでは、キーボードがはじけばページが上に移動し、入力ボックスが画面の真ん中に表示され、キーボードが隠れているページが元に戻るように移動します.
6.7.4バージョンでは、戻ることはありません.これは相対的な位置付け(fixed、absoute:ブラウザフォームに対して)のノードがシフトし、ノードがイベントオフセットをクリックして選択できなくなります.
ソリューション:入力ボックスがフォーカスを失う(すなわち、キーボードが非表示の場合)、手動でページを調整します.document.activeElement.scrollIntoViewIfNeed(true)
各入力ボックスがフォーカスを失うと、以下のイベントに応答すればいいです.
ページに下記のコードを挿入すればいいです.
6.7.4バージョンでは、戻ることはありません.これは相対的な位置付け(fixed、absoute:ブラウザフォームに対して)のノードがシフトし、ノードがイベントオフセットをクリックして選択できなくなります.
ソリューション:入力ボックスがフォーカスを失う(すなわち、キーボードが非表示の場合)、手動でページを調整します.document.activeElement.scrollIntoViewIfNeed(true)
各入力ボックスがフォーカスを失うと、以下のイベントに応答すればいいです.
ページに下記のコードを挿入すればいいです.
var u = navigator.userAgent, app = navigator.appVersion
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios
$(document).ready(function(){
$("input").blur(function(){
if (isIOS) {
blurAdjust()
// alert("1231321233")
}
});
});
//
function blurAdjust(e){
setTimeout(()=>{
// alert("1231321233")
if(document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA'){
return
}
let result = 'pc';
if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { // iPhone|iPad|iPod|iOS
result = 'ios'
}else if(/(Android)/i.test(navigator.userAgent)) { // Android
result = 'android'
}
if( result = 'ios' ){
document.activeElement.scrollIntoViewIfNeeded(true);
}
},100)
}
参考:https://blog.csdn.net/Mr_linjw/articale/detail/85050920