ios手機在彈出框編輯後,收起軟鍵盤,頁面會出現底部留白問題

初次解決方式是通過固定頁面不在軟鍵盤彈出的時候被頂起

用css樣式固定,如下:

body {
        position: fixed;
         top: 0;
        left: 0;
        }

但是修改又出現新的問題:

雖然ios手機在收起軟鍵盤後頁面沒有因被頂起不下滑導致底部留白,卻導致原本彈出的輸入框的確定按鈕在軟鍵盤收起後點擊無效了。

最終的解決方式如下:

在頁面添加js代碼:

     let u = window.navigator.userAgent;
                    let res = {
                        mobile: !!u.match(/AppleWebKit.*Mobile.*/),  //是否為移動終端
                        ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),  //ios終端
                        android: u.indexOf("Android") > -1 || u.indexOf("Linux") > -1,  //android終端或者uc瀏覽器
                        iPhone: u.indexOf("iPhone") > -1,
                        iPad: u.indexOf("iPad") > -1  //是否为iPad
                    };
                if (res.iPhone || res.iPad) {                            //判斷當input失去焦點的時候,主動滾動
                        $('body').on('touchend', function (el) {
                            if (el.target.tagName != 'INPUT') {
                                $('input').blur(function () {
                                    document.body.scrollTop = document.body.scrollHeight;
                                })
                            }
                        })

        document.body.addEventListener('focusout', () => { //软键盘关闭事件
                            console.log("键盘收起");
                            document.body.scrollTop = 0;
                            document.documentElement.scrollTop=0;
                        });

                    }

添加了判斷當input失去焦點的時候,頁面主動滾動,成功解決問題,在彈出的輸入框中設置所需內容,點擊ios手機的軟鍵盤完成按鈕,收起軟鍵盤,最後點擊彈出框的確定按鈕,實現所需操作功能,整個流程,頁面顯示正常,功能正常實現。

但後續發現點擊ios手機頁面彈出的數據框設置後的確定按鈕後,軟鍵盤自動收起,但頁面底部也會留空,所以添加了軟鍵盤關閉事件,在鍵盤自動被收起時,讓頁面自動回滾歸位。

ps:用position: fixed;效果不佳,頁面內容滑動瀏覽會卡頓幾秒

參考如下資料:

js判斷移動,pc端,ios終端,android終端,iphone,iPad 等:

http://www.artll.com/63.html

ios软键盘顶起页面后隐藏不回弹解决方案

https://blog.csdn.net/qq_23370345/article/details/84757505

ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。

https://www.cnblogs.com/xiongzaiqiren/p/10505490.html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值