uni-app打包h5页面ios唤起软键盘踩坑
问题:页面有很多input框,上面的input输入框,当虚拟键盘出来时没问题,但是下面的input输入框,就会出现问题,input输入框会跑到键盘后面。
网上一阵百度,找到原因:安卓手机中唤起软键盘时页面会压缩webview的高度,窗口会执行resize事件,但ios并不会。网上各种百度,尝试,都失败了,在快放弃时,找到一个可行的。直接贴代码:
1 <template>
2 <view class="wrapper" id="wrapper" ref="wrapper">
3 <scroll-view
4 :style="{'height': scrollHeight}"
5 class="scroll-view"
6 :scroll-y="true">
7 <view class="evaluate-type-list">
8 <view
9 class="evaluate-type-item"
10 v-for="(item, index) in options"
11 :key="index">
12 <view class="item-top">
13 <view class="title">
14 {{item.title}}
15 <text class="score">({{item.score}})</text>
16 </view>
17 <view class="content">{{item.content}}</view>
18 </view>
19 <view class="item-bottom">
20 <view class="content">
21 评价
22 <input
23 v-model.number="item.evaluateScore"
24 class="input"
25 type="number"
26 placeholder="请输入评价分数"
27 @input="checkScore(item)"
28 @focus="focusInput"
29 @blur="blurInput"
30 placeholder-style='color: #d1d1d1' />
31 </view>
32 <view class="err-tip" v-if="item.isErr">{{item.errTip}}</view>
33 </view>
34 </view>
35 </view>
36 <button class="btn-submit" @tap="submit">确定</button>
37 </scroll-view>
38 </view>
39 </template>
40
41 <script>
42 export default {
43 data() {
44 return {
45 scrollHeight: 'calc(100vh - 20upx)',
46 }
47 },
48 methods: {
49 focusInput() {
50 // 获取系统信息
51 let info = uni.getSystemInfoSync();
52 if(info.platform === 'ios') {
53 setTimeout(() => {
54 let viewInfo = this.$refs.wrapper.$el.getBoundingClientRect();
55 // 获取视图偏移量,重新定位操作栏
56 this.bottomVal = Math.abs(parseFloat(viewInfo.top))
57 // 重置编辑区高度
58 this.scrollHeight = `calc(100vh - ${98 + this.bottomVal}px )`
59 }, 500)
60 }
61 },
62 blurInput() {
63 this.scrollHeight = 'calc(100vh - 180upx)';
64 },
65
66 }
67 }
68 </script>
69
70 <style lang="scss" scoped>
71 </style>
终于解决困扰一个星期的问题。如果对你有帮助,请给个赞,谢谢!
uni-app打包h5页面ios唤起软键盘踩坑的更多相关文章
- H5页面关于android软键盘弹出顶起底部元素的解决方案
应用场景:用div在移动端页面设置一个底部工具栏,css的代码大概如下: .tool{ width: 100%; height: 60px; position: fixed; left: 0px; b ...
- 微信H5页面 会被软键盘顶起来
问题描述:H5页面在微信中打开,input输入框获取焦点时,页面被软键盘顶上去:关闭软键盘时,页面不会自动下来(恢复初始状态) H5页面在微信中初始状态如下图: input输入框获取焦点时,页面被软键 ...
- h5页面ios,双击向上滑动,拖拽到底部还能继续拖拽(露出黑色背景)
h5页面ios,双击向上滑动,拖拽到底部还能继续拖拽 标签: 手机 2016-02-02 18:09 696人阅读 评论(0) 收藏 举报 在ios下,双击屏幕某些地方,滚动条会自动向上走一段. ...
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...
- iOS让软键盘消失的简单方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一些文本输入控件等待输入时会弹出软键盘,我们可以设置这些控件的 ...
- 页面的input唤醒软键盘再收起后,页面会出现软键盘高度的空白背景
微信浏览器在版本6.7.4及以上会有这个bug:页面的input唤醒软键盘再收起后,页面会出现软键盘高度的空白背景,触摸到滚动条会消失恢复! 解决代码 后台框架嵌入iframe的情景,iframe内部 ...
- ios获取软键盘完成事件
ios获取软键盘完成事件,通过判断input的onBlur事件即可
- H5页面中唤起native app
现在各类app,分享出去的H5页面中,一般都会带着一个立即打开的按钮,如果本地安装了app,那么就直接唤起本地的app,如果没有安装,则跳转到下载.这是一个很正常的推广和导流量的策略,最近产品经理就提 ...
- iOS原生App与H5页面交互笔记
文/MikeZhangpy(简书作者)原文链接:http://www.jianshu.com/p/4ed3e5ed99c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 最近在做一个项 ...
- h5项目中关于ios手机软键盘导致页面变形的完美解决方案
1.项目背景:vue项目,手机加短信验证码登录: 2.问题: 在ios中input吊起软键盘,输入完成后,收起软件盘,页面不会回弹,导致页面下方出现空白,也就是页面变形: 3.最开始的解决方案是,用i ...
随机推荐
- NoSQL数据库与关系数据库的比较
1.在原理方面 2.在数据规模方面 3.在数据库模式方面 4.查询效率方面: 5.在事务一致性方面: 6.在数据完整性方面: 7.在可扩展性方面: 8.在可用性方面 9.在标准化方面: 10.在技术支 ...
- CentOS 8.1成功安装最新Node.js 20教程(含用到的全部命令和截图演示)
yum换镜像和源 CentOS 已经停止维护的问题.2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,Ce ...
- 图扑物联 | WEB组态可视化软件
01什么是组态? 组态的概念来自于20世纪70年代中期出现的第一代集散控制系统(Distributed Control System),可理解为"配置"."设置" ...
- pinia持久化存储插件-pinia-plugin-persistedstate
pinia-plugin-persistedstate 丰富的功能可以使 Pinia Store 的持久化更易配置: 与 vuex-persistedstate 相似的 API 所有 Store 均可 ...
- 华企盾DSC防泄密:有一个文件申请解密失败,提示拒绝访问(密钥不对)
解决方法:将文件拖到加密进程中提示密钥不对,找到原来的数据库还原解密
- Kernel Memory 入门系列:Semantic Kernel 插件
Kernel Memory 入门系列:Semantic Kernel 插件 Kernel Memory 本身提供了完整的RAG能力,这部分能力如果通过Semantic Kernel Memory的话, ...
- Windows下使用图形化的Havoc C2
Windows下使用图形化的Havoc C2 前言 这几天用goland去连虚拟机去coding真的心累,想着搞个wsl算了虽然测试又变麻烦了(wsl2和VMware一起开有问题,可能保存不了快照), ...
- Spring 多线程的事务处理
问题起因 Spring 的 JDBC 相关的依赖库已经提供了对 JDBC 类事务处理的统一解决方案,在正常情况下,我们只需要在需要添加事务的业务处理方法上加上 @Transactional 注解即可开 ...
- Java中常用不可变类
Java中常用的不可变类是指一旦被创建,它们的值就不可更改的类.在实际开发中,使用不可变类时可以带来多种优点,比如线程安全.缓存.副本等.下面我们将介绍Java中常见的不可变类: 1.字符串(Stri ...
- 2023-06-01:讲一讲Redis常见数据结构以及使用场景。
2023-06-01:讲一讲Redis常见数据结构以及使用场景. 答案2023-06-01: 字符串(String) 适合场景 缓存功能 Redis 作为缓存层,MySQL 作为存储层,在大部分请求中 ...


