详解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实现的8种Loading动画效果
Jul 05 HTML / CSS
CSS3提交意见输入框样式代码
Oct 30 HTML / CSS
详解CSS3中字体平滑处理和抗锯齿渲染
Mar 29 HTML / CSS
HTML5中视频音频的使用详解
Jul 07 HTML / CSS
HTML5 Geolocation API的正确使用方法
Dec 04 HTML / CSS
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
Jan 30 HTML / CSS
HTML5 window/iframe跨域传递消息 API介绍
Aug 26 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
Jul 13 HTML / CSS
h5实现获取用户地理定位的实例代码
Jul 17 HTML / CSS
Html5适配iphoneX刘海屏的简单实现
Apr 09 HTML / CSS
three.js模拟实现太阳系行星体系功能
Sep 03 HTML / CSS
关于HTML编码导致的乱码问题
Sep 04 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循环获取GET和POST值的代码
2008/04/09 PHP
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
javascript date格式化示例
2013/09/25 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
vue.js element-ui tree树形控件改iview的方法
2018/03/29 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
Python文件操作的面试题
2013/06/22 面试题
物流仓管员工作职责
2014/01/06 职场文书
出生医学证明样本
2014/01/17 职场文书
个人汇报材料范文
2014/12/30 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
无线电知识基础入门篇
2022/02/18 无线电
Win11软件图标固定到任务栏
2022/04/19 数码科技