常见的移动端Web页面问题

移动端Web须要照顾触摸操做的体验,以及更多的屏幕旋转与尺寸适配等问题,很是琐碎,在这里为你们倾力总结多条常见的移动端Web页面问题解决方案,欢迎收看收藏!javascript

一、安卓浏览器看背景图片,有些设备会模糊css

用同等比例的图片在PC机上很清楚,可是手机上很模糊,缘由是什么呢?html

通过研究,是devicePixelRatio做怪,由于手机分辨率过小,若是按照分辨率来显示网页,这样字会很是小,因此苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2。如今android比较乱,有1.5的,有2的也有3的。java

想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(通常状况都是用2倍)。例如一个div的宽高是100100,背景图必须得200200,而后background-size:contain;,这样显示出来的图片就比较清晰了。android

代码能够以下:git

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;github

或者指定 background-size:contain;均可以
 
二、图片加载
    遇到图片加载很慢的问题,对这种状况,手机开发通常用canvas方法加载:

    具体的canvas API 参见:http://javascript.ruanyifeng.com/htmlapi/canvas.htmlweb

   eg:  <li><canvas></canvas></li> canvas

 1 js动态加载图片和li 总共举例15张图片!
 2 var total=15; 
 3 var zWin=$(window); 
 4 var render=function(){ 
 5   var padding=2; 
 6   var winWidth=zWin.width(); 
 7   var picWidth=Math.floor((winWidth-padding*3)/4); 
 8   var tmpl =''; 
 9   for (var i=1;i<=totla;i++){ 
10   var p=padding; 
11   var imgSrc='img/'+i+'.jpg'; 
12   if(i%4==1){ 
13    p=0; 
14   } 
15   tmpl +='<li style="width:'+picWidth+'px;height:'+picWidth+'px;padding-left:'+p+'px;padding-top:'+padding+'px;"><canvas id="cvs_'+i+'"></canvas></li>'; 
16   var imageObj = new Image(); 
17   imageObj.index = i; 
18   imageObj.onload = function(){ 
19     var cvs =$('#cvs_'+this.index)[0].getContext('2d'); 
20     cvs.width = this.width; 
21     cvs.height=this.height; 
22     cvs.drawImage(this,0,0); 
23   } 
24   imageObj.src=imgSrc; 
25   } 
26  
27 } 
28 render(); 
View Code

三、假如手机网站不用兼容IE浏览器,通常咱们会使用zeptojs。zeptojs内置Touch events方法,具体能够看http://zeptojs.com/#Touch eventsapi

四、防止手机中网页放大和缩小,这点是最基本的,最为手机网站开发者来讲应该都知道的,就是设置meta中的viewport

     eg: 一般把user-scalable设置为0来关闭用户对页面视图缩放的行为 :  <meta name="viewport" content="user-scalable=0" />

     完整的viewport写法:<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />

五、web应用是否以全屏模式运行 apple-mobile-web-app-capable

  eg:  <meta name="apple-mobile-web-app-capable" content="yes">

      说明:若是content设置为yes,Web应用会以全屏模式运行,反之,则不会。content的默认值是no,表示正常显示

六、启动或禁用自动识别页面中的电话号码 format-detection   和  拨号功能

    eg: <meta name="format-detection" content="telephone=no">   拨号<a href="tel:4001001,101">4001001转101</a>

七、上下拉动滚动条时卡顿、慢     Android3+和iOS5+支持CSS3的新属性为overflow-scrolling

   eg:   body {

   -webkit-overflow-scrolling: touch;
   overflow-scrolling: touch;
}
八、禁止复制、选中文本 (解决移动设备可选中页面文本)
   eg:     ele {
     -webkit-user-select: none ;
     -moz-user-select: none ;
     -khtml-user-select: none ;
        user-select: none ;
  }
九、长时间按住页面出现闪退    -webkit-touch-callout: none;
十、旋转屏幕时,字体大小调整的问题   -webkit-text-size-adjust:100%;
十一、移动端点击300ms延迟

    300ms尚可接受,不过由于300ms产生的问题,咱们必需要解决。300ms致使用户体验并非很好,解决这个问题,咱们通常在移动端用tap事件来取代click事件。

    推荐两个js,一个是fastclick,一个是tap.js

    关于300ms延迟,具体请看:http://thx.github.io/mobile/300ms-click-delay/

 
 

<meta name="keywords" content="" /><!--网页关键词-->

<meta name="description" content="" /><!--网页描述-->

  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /><!--适配当前屏幕-->
  <meta name="format-detection" content="telephone=no" /><!--禁止自动识别电话号码-->
  <meta content="strongail=no" name="format-detection" /><!--禁止自动识别邮箱-->
  <meta name="apple-mobile-web-app-capable" content="yes" /><!--iphone中safari私有meta标签,容许全屏模式浏览,隐藏浏览器导航栏-->
  <meta name="apple-mobile-web-app-status-bar-style" content="black"> <!--iphone中safari顶端的状态条的样式black(黑色)-->

后续会继续添加。。。。

文章来源:http://www.jb51.net/article/84973.htm

相关文章
相关标签/搜索