详解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将你的设计带入下个高度
Aug 08 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
Apr 23 HTML / CSS
深入浅析css3 border-image边框图像详解
Nov 24 HTML / CSS
CSS3实现可爱的小黄人动画
Jul 11 HTML / CSS
CSS3 分类菜单效果
May 27 HTML / CSS
详解CSS3:overflow属性
Nov 17 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
Nov 18 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
Jun 17 HTML / CSS
HTML5新标签兼容——> 的两种方法
Sep 12 HTML / CSS
VSCode 自定义html5模板的实现
Dec 05 HTML / CSS
CSS3实现列表无限滚动/轮播效果
Jun 23 HTML / CSS
td 内容自动换行 table表格td设置宽度后文字太多自动换行
Dec 24 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 读写json文件及修改json的方法
2018/03/07 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
JS中的public和private对象,即static修饰符
2012/01/18 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
使用JS+plupload直接批量上传图片到又拍云
2014/12/01 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
Node.js学习入门
2017/01/03 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
python3.6的venv模块使用详解
2018/08/01 Python
python爬取淘宝商品销量信息
2018/11/16 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
元旦促销方案
2014/03/15 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
群众路线查摆问题及整改措施
2014/10/10 职场文书
工作失误检讨书(经典集锦版)
2014/10/17 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
班级班风口号大全
2015/12/25 职场文书
节水宣传标语口号
2015/12/26 职场文书