2018-04-27 11:03:02 653浏览
我们上篇文章已经和大家分享了一些扣丁学堂HTML5在线学习视频教程讲解的关于HTML5与APP混合开发遇到的问题及解决方法,本篇文章小编继续带大家看一些常见的问题及解决方法。
问题4:移动端1px的问题
问题描述:
由于不同的手机有不同的像素密度,css中的1px并不等于移动设备的1px。项目中使用js和rem做移动端的屏幕适配,所以产生0.5px的情况,导致低版本的手机展示不了0.5px的边框。
解决方法:
使用css解决1px的问题,并且给需要设置成1px的dom元素直接写上:border-width:1px;
代码:
//HTML部分: <divclass='class1'></div> //css部分: .class1{ border:1pxsolid#ccc; } //css部分 /*移动端正常展示1px的问题start*/ %border-1px{ display:block; position:absolute; left:0; width:100%; content:''; } .border-1px{ position:relative; &::after{ @extend%border-1px; bottom:0; border-top:1pxsolid#ccc; } &::before{ @extend%border-1px; top:0; border-bottom:1pxsolid#ccc; } } @media(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5){ .border-1px{ &::after{ -webkit-transform:scaleY(0.7); transform:scaleY(0.7); } } } @media(-webkit-min-device-pixel-ratio:2),(min-device-pixel-ratio:2){ .border-1px{ &::after{ -webkit-transform:scaleY(0.5); transform:scaleY(0.5); } } } /*移动端正常展示1px的问题end*/
问题5:js无法正确解析到url包含"="号的参数值
问题描述:
项目中,由于数据请求的参数值是从url地址中获取的参数值,并且参数值包含"="号,导致无法正确解析到参数值(ps:js使用"="号分割url的参数)
解决方法:
将url进行转码,再解码【本项目中,APP端提供转码后的url地址,前端使用geturlparams插件,获得url地址的参数值】
代码:
//解码"="号 dom.token=decodeURI($.query.get("token"));//插件 //获取无需解码的值 dom.msgid=$.query.get("msgid");
问题6:原生js的事件监听和jquery的事件绑定在ios中失效
问题描述:
使用事件监听或事件绑定时,由于父元素选择body或document元素,导致在ios中事件触发无效
解决方法:
不使用body和document元素作为父级元素
问题7:ios中日期显示为NaN
问题描述:
Date的日期格式,在ios中有兼容性问题,ios的日期会显示成:NaN
解决方法:
解决方法:在ios中支持"2017/12/2619:36:00",而不支持"2017-12-2619:36:00"格式,后面一种格式,在ios中显示Nan(Android中都可以显示正常)
代码:
vartime="2017-12-2619:36:00"; time=time.replace(/\-/g,"/");//将时间格式的'-'转成'/'形式,兼容iOS
问题8:click事件在ios中有问题
问题描述:
click事件在ios点击触发时,会选中事件委托的父级元素模块【即:由于事件冒泡,并且父级有默认样式】,并且有一个透明层,例如:
<ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul>
解析:例如ios用户点击"列表项1"时,父层的ul会有一个透明的样式。
关于HTML5与APP混合开发遇到的问题小编就为大家说到这里了,想要了解更多内容的小伙伴可以登录扣丁学堂官网查询。扣丁学堂是专业的HTML5培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的HTML5在线视频供学员观看学习哦。扣丁学堂H5技术交流群:559883758。
【关注微信公众号获取更多学习资料】