vue使用popup弹出层组件时使用input造成ios不兼容问题

本文介绍了一种解决iOS设备上使用Vue开发的混合应用中,软键盘遮挡底部弹出层并导致交互异常的解决方案。通过监听软键盘的弹出和关闭事件,实现软键盘关闭后页面自动滚动到顶部,从而修复了输入数据后的显示和点击问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做公司的混合app时 有一个点击按钮弹出一个固定定位在底部的弹出层,只有弹出层时没问题 可是弹出层里需要输入数据,就造成了bug 输完数据关闭软键盘后,软键盘的位置会显示空白 遮挡住弹出层,并且弹出层无法被点击,经过查阅,监听软键盘的弹出和关闭事件 关闭时把页面滑动一下即可恢复正常 但是有点生硬 总比以前强了

写在vue的mounted里即可

			let u = navigator.userAgent;
            let flag;
            let myFunction;
            let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
            if(isIOS){
                document.body.addEventListener('focusin', () => {  //软键盘弹起事件
                    flag=true;
                    clearTimeout(myFunction);
                })
                document.body.addEventListener('focusout', () => { //软键盘关闭事件
                    flag=false;
                    if(!flag){
                        myFunction = setTimeout(function(){  
                            window.scrollTo({top:0,left:0,behavior:"smooth"})//重点  =======当键盘收起的时候让页面回到原始位置(这里的top可以根据你们个人的需求改变,并不一定要回到页面顶部)
                            
                        },200);
                    }else{
                        return
                    }
                })
            }else{
                return
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值