IOS下软键盘弹出时,H5页面上方的固定区域被顶上去的解决办法(js)

键盘弹出后,整个页面上移,原先固定在顶部,position=fixed的div,不见了。原来这时候div的fixed的效果变成了absolute效果。键盘弹出时,会触发body的scroll事件。这时候只要得到页面整体滚动的距离,把div的top设置为这个距离就可以了

$(window).on('scroll', function () {
//在IOS下document.body.scrollTop 一直为0,要用document.documentElement.scrollTop
   var scrollTop = document.documentElement.scrollTop ||        document.body.scrollTop; 
   divTop.style.top = scrollTop  + 'px';
   };
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
iOS 中,可以通过监听键盘事件来实现禁止页面整体被上去的功能。具体实现如下: 1. 注册键盘和隐藏的通知,可以在viewDidLoad方法中添加以下代码: ``` NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillShow(_:)), name: UIResponder.keyboardWillShowNotification, object: nil) NotificationCenter.default.addObserver(self, selector: #selector(keyboardWillHide(_:)), name: UIResponder.keyboardWillHideNotification, object: nil) ``` 2. 在键盘和隐藏的方法中,根据键盘的高度来调整页面的布局,可以在UIViewController中添加以下代码: ``` @objc func keyboardWillShow(_ notification: Notification) { if let userInfo = notification.userInfo, let keyboardFrame = userInfo[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue { let keyboardHeight = keyboardFrame.cgRectValue.height // 根据键盘的高度来调整页面的布局 // 比如可以将底部的按钮向上移动键盘的高度 // 这样页面整体就不会被上去了 } } @objc func keyboardWillHide(_ notification: Notification) { // 在键盘隐藏,可以将页面恢复到原来的布局 } ``` 在这两个方法中,可以根据键盘的高度来调整页面的布局,比如将底部的按钮向上移动键盘的高度,这样页面整体就不会被上去了。 另外,需要注意的是,在UIViewController中要记得在deinit方法中移除通知的监听,可以添加以下代码: ``` deinit { NotificationCenter.default.removeObserver(self) } ``` 这样就可以实现在iOS中禁止页面整体被上去的功能了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值