关于h5移动端常见问题整理

本文总结了移动端开发中常见的兼容性和样式问题及解决方案,包括处理页面晃动、遮罩层交互、弹性盒子布局、input样式统一、button点击效果消除等,并分享了JS与JQuery的使用技巧。

        移动端开发要考虑最多的就是兼容性的问题,android和ios的兼容,css3新增属性的兼容以及h5新增标签等使用问题。下面是一些小问题以及解决方案,仅供参考。

        【1】.关于样式的总结

        1.移动端开发页面会左右晃动,这时候我们需要给外层容器加上overflow-x:hidden。

         2.遮罩层下面的内容依然会滑动,这时候我们可以把所有相关事件都停掉,或者在该容器外面再套一层div,宽高设为全屏,当遮罩层出现时,让该div:overflow:           hidden;关闭遮罩层时overflow:auto;

        3.当我们使用弹性盒子布局时,要想头尾固定,首先要注意必须使容器占满视窗高度,其次使用flex系数进行设置,但是要注意中间内容区必须设置overflow:scroll属性,使其可以出现滚动条。

       4.input默认样式的问题。关于input很可能会出现andriod和ios的不兼容问题。我们要注意以下几点,可以进行尝试设置:

          <1>appearence:none; -webkit-appearence:none;-moz-appearence:none;

          <2>FILTER:alpha(opacity:0);

         <3>设置输入框背景色为透明:background-color:transparent;

       5.关于button/a/input点击之后出现的半透明背景的解决问题,使用-webkit-tap-hightlight-color:rgba(255,0,0,0);

       6.关于&nbsp;在移动端会失效,建议添加空元素,设置宽度进行文字隔开。

       7.关于input的坑!input调起手机软键盘进行评论如果采取fixed定位的话,在安卓机上一般是正常的,但是在ios手机上会出现定位不准的问题,比如会被软键盘遮挡住,或 者没有定位到软键盘正上方。该问题我目前的解决方案是:点击input之后弹出一个自定义的评论框,让自定义的评论框相对窗口居中即可。各大网站关于评论框的解决方 案大部分是点击跳页再评论,个人感觉没有第一种好。

       【2】.关于行为的总结

        1.首先要区分开js和jq的写法,两者之间可以转换。可以通过.get(0)转换。

        2.prop()和attr()的区别和使用。首先,对于html元素本身就具有的属性,需要处理时建议使用prop()方法,而对于自定义的Dom属性等要使用attr().需要注意一点:prop()的返回值是true和false;而attr()的返回值是类似“checked”的属性或者undefined;

       3.关于阻止a标签的默认属性的几种方法的利与弊整理:href属性需要填充以下值,才能使得hover属性起作用,并且阻止跳转。

          #,这个会引起页面滚动到顶端,会增加无用的历史记录,会让 url 里有个难看的 #。
          #!##,###,页面不会滚动了,但还是有其他问题。
          javascript:;,javascript:void(0); 会让 IE6 的动态 GIF 停止播放。
         事件绑定模式下的 return false不过这种方法覆盖面不全。
         事件监听模式下的 event.preventDefault()event.returnValue = false,此方法比较好, 点击 a 标签时,浏览器就无视 href 属性了。
     4.关于各种地址栏传参的问题,以及地址栏截取对应参数的问题,建议参考我的微博“获取地址栏传递信息方法汇总”链接地 址:http://blog.csdn.net/wh_xmy/article/details/56290453
     5.关于点击电话号码,调起通讯录的做法,本方法简单只需要利用a连接的href属性的特点即可。例:(1)拨打电话:<a href="tel:18888888888">打电话</a>(2)发送短信:<a href="sms:188888888888">发送信息</a>(3)发送邮件:<a href="mailto:mail@mail.com">发送邮件</a>
     6.关于事件代理的问题,如果你的页面有分页加载等操作,那么就要注意了,此时必须使用事件代理,但是时间代理有可能会带来点击一次操作两次的诡异事件,这时候的解决方案可以是<1>先解绑事件然后再绑定<2>采用类似命名空间的方案,区分click事件,例如click1等。
新增记录:H5混合开发,解决ios顶部底部适配问题参考链接: H5在全屏webview中双端适配刘海屏_前端粉刷匠的博客-CSDN博客_h5页面怎么兼容刘海屏


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值