相信大家在做h5页面开发的时候,也会遇到一些问题。笔者将h5开发过程中常见的一些问题和解决办法列举出来,有需要的朋友可以参考一下。
1. 安卓浏览器看背景图片,有些设备会模糊。
同等比例的图片在PC端页面和移动手机端页面的分辨率差很多,原因和devicePixelRatio有关。手机分辨率比PC端的分辨率小,按照分辨率来显示网页会让字体变得很小。所以苹果当初就把iPhone 4的960*640分辨率,在网页里只显示了480*320,devicePixelRatio=2。现在android比较乱,有1.5的,有2的也有3的。
想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍)。例如一个div的宽高是100100,背景图必须得200200,然后background-size:contain;,这样显示出来的图片就比较清晰了。
代码如下:
background:url(../images/icon/all.png) no-repeat center center;
-webkit-background-size:50px 50px;
background-size: 50px 50px;display:inline-block; width:100%; height:50px;
或者指定 background-size:contain;都可以
2. 图片加载
若遇到图片加载很慢的问题,对这种情况,手机开发一般用canvas方法加载。
下面举例说明一个canvas的例子:
js动态加载图片和li 总共举例17张图片!
var total=17;
var zWin=$(window);
var render=function(){
var padding=2;
var winWidth=zWin.width();
var picWidth=Math.floor((winWidth-padding*3)/4);
var tmpl ='';
for (var i=1;i<=totla;i++){
var p=padding;
var imgSrc='img/'+i+'.jpg';
if(i%4==1){
p=0;
}
tmpl +='';
var imageObj = new Image();
imageObj.index = i;
imageObj.onload = function(){
3. 防止手机中网页放大和缩小
手机网站开发者都应该都知道的基本常识,就是设置meta中的viewport。
除此以外,当我们在一些手机网站看到如下声明时:
设置了DTD的方式是XHTML的写法,假如我们页面运用的是html5,可以不用设置DTD,直接声明。
使用viewport使页面禁止缩放。通常把user-scalable设置为0来关闭用户对页面视图缩放的行为
但是为了更好的兼容,也可以使用完整的viewport设置。
4. apple-mobile-web-app-capable
apple-mobile-web-app-capable是设置Web应用是否以全屏模式运行。
语法:
说明:如果content设置为yes,Web应用会以全屏模式运行,反之,则不会。content的默认值是no,表示正常显示。你可以通过只读属性window.navigator.standalone来确定网页是否以全屏模式显示。
5. html5调用安卓或者ios的拨号功能
html5提供了自动调用拨号的标签,只要在a标签的href中添加tel:就可以了。
如下:
6. 上下拉动滚动条时卡顿、慢
body {
-webkit-overflow-scrolling: touch;
overflow-scrolling: touch;
}
以上就是笔者整理的一些常见的h5页面开发中会遇到的问题。当然,如果觉得自己动手开发麻烦,预算又充足的话,也可以找外部承包商来完成开发。笔者体验过这家服务商开发的h5页面,效果还可以哦。