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

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

用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?

经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样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 API 参见:http://javascript.ruanyifeng.com/htmlapi/canvas.html

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

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

相关文章:

  • 2022-12-23
  • 2022-02-22
  • 2022-12-23
  • 2021-12-06
猜你喜欢
  • 2022-12-23
  • 2021-12-22
  • 2021-10-10
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案