详解h5页面在不同ios设备上的问题总结


Posted in HTML / CSS onMarch 01, 2019

最近在写嵌入到小程序webview的一个h5页面,是一个文章评论的功能,这个过程中,遇到很多兼容性的问题,在不同机型上的表现也很不一致,所以总结了以下这些问题,记录下来,以便以后查看

1、日期问题

对于yyyy-mm-dd hh:mm:ss 这种格式在ios系统不识别

时间格式化的时候,在浏览器端处理好好的,到了手机端,就变成NAN,或者null,这种情况,是ios系统不能转化这种类型的时间。

let date = new Date('2019-02-28 18:33:24');    // null`

解决方案是,转成 yyyy/mm/dd hh:mm:ss 这种格式就可以了

 

replace(/\-/g, "/")

2、键盘收起,页面卡住,不回落

ios12上,发现键盘收起的时候,页面会卡主,留下底部一片空白,稍微动一下页面,就会恢复。

这种问题,在网上查了很多解决方案,大致是在blur事件中,让页面滚动一下

window.scrollTo(0, scroll);

但是有一个很严重的问题:如果页面上有按钮需要操作 ,例如,评论的输入框+发布按钮,输入完文字,点击“发布”,触发click事件的时候,会导致页面先触发blur事件,键盘回落,然后一切就结束了。。。。按钮点击没有起任何作用。

解决方案: 把click事件更换成ontouchstart 可以解决这个问题。 ontouchstart 事件优于click事件触发

3、ios12在微信小程序的webview,键盘收回,页面底部会留白

这个问题怀疑是页面的scroll设置了auto导致的

4、iphone fix 失效,导致一些机器上textarea光标偏移

解决方案: 所有兄弟元素变成absolute, 父元素overflow:auto;

父元素:
height: 100vh;
  position: relative;
  overflow: auto;
  
兄弟元素:
position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  overflow-x: visible;
  overflow-y: auto;
  padding-bottom: 10px;
  z-index: 1

5、键盘遮挡输入框

输入框如果使用了fixed固定在底部,键盘顶起的时候,iphone上fixed会失效,导致页面滚动输入框会随着页面滚动,并且在部分机型上,输入框偶尔会被键盘遮挡,这种偶现的问题,很不友好

解决方案: 放弃使用fixed布局,页面如果有滚动,也放弃absolute,如果强行要使用absolute,请参考上一条光标偏移

建议使用flex布局,兼容性会得到解决。

当然,如果遇到以上这些问题,说明产品设计就很不合理,如果必要的话,还是要更换设计,改成input不需要被键盘顶起的设计,这些兼容性的解决方案,也不并不能完美的解决所有机型的问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3属性box-shadow使用详细教程
Jan 21 HTML / CSS
css3简单练习实现遨游浏览器logo的绘制
Jan 30 HTML / CSS
css3 中translate和transition的使用方法
Mar 26 HTML / CSS
CSS3 按钮边框动画的实现
Nov 12 HTML / CSS
canvas粒子动画背景的实现示例
Sep 03 HTML / CSS
web页面录屏实现
Feb 12 HTML / CSS
html5中地理位置定位api接口开发应用小结
Jan 04 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
Apr 24 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
Nov 15 HTML / CSS
HTML5中使用json对象的实例代码
Sep 10 HTML / CSS
使用canvas压缩图片大小的方法示例
Aug 02 HTML / CSS
高清屏下canvas重置尺寸引发的问题的解决
Oct 14 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
Feb 20 #HTML / CSS
h5网页水印SDK的实现代码示例
Feb 19 #HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
Feb 18 #HTML / CSS
canvas 橡皮筋式线条绘图应用方法
Feb 13 #HTML / CSS
Canvas系列之滤镜效果
Feb 12 #HTML / CSS
canvas学习总结三之绘制路径-线段
Jan 31 #HTML / CSS
移动端Html5中百度地图的点击事件
Jan 31 #HTML / CSS
You might like
php empty() 检查一个变量是否为空
2011/11/10 PHP
PHP生成器简单实例
2015/05/13 PHP
PHP.vs.JAVA
2016/04/29 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
PHP unset函数原理及使用方法解析
2020/08/14 PHP
angularJS 中$scope方法使用指南
2015/02/09 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
2016/05/26 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
vue.js+Element实现表格里的增删改查
2017/01/18 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
python中可以声明变量类型吗
2020/06/18 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
const和static readonly区别
2013/05/20 面试题
应届毕业生的自我鉴定
2013/11/13 职场文书
打架检讨书400字
2014/01/17 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
2014法制宣传日活动总结范文
2014/11/01 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
解析原生JS getComputedStyle
2021/05/25 Javascript
python实现会员信息管理系统(List)
2022/03/18 Python
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL
腾讯云服务器部署前后分离项目之前端部署
2022/06/28 Servers