前端程序员干货让前端飞Web前端之路

移动适配方法(开发类)

2017-09-21  本文已影响141人  枫之伊信

总结的移动适配方法,希望可以共同学习。

一、根据html根节点方案(rem单位)

updataHtml();
function updataHtml(){
     var w = document.documentElement.clientWidth;
           document.documentElement.style.fontSize=w/16+'px';
}

window.onresize=function(){
    updataHtml();
}

html{font-size: 20px;}

二、手机淘宝的flexible方案(计算太繁琐)

手机淘宝的flexible方案是综合运用rem和px两种单位+js设置scale和html字体

只需要在Web页面的中添加对应的flexible_css.js,flexible.js文件:

例如:
设计师提供的UI宽度比如是640,写css的时候,比如一个div,设计的尺寸是:宽度:200,高度:100,那你就写width:200/640rem;height:100/640rem。
width:200/640rem;不要直接这样写,你要算出200/640的结果。

三、手机腾讯(根据设计稿同比缩放,在加上阀值控制)

我们认为初始化的rem是100,对应的fontsize也是100,基准的屏幕宽度按照320的设计稿,根据当前屏幕的宽高像素比,算出来当前的rem,100比较好算,设置成其他的也无妨,因为你算的是相对比例。

(function() {
     var baseFontSize = 100;
      var baseWidth = 320;
      var clientWidth = document.documentElement.clientWidth || window.innerWidth;
      var innerWidth = Math.max(Math.min(clientWidth, 480), 320);
      var rem = 100;
      if (innerWidth > 362 && innerWidth <= 375) {
            rem = Math.floor(innerWidth / baseWidth * baseFontSize * 0.9);
      }
      if (innerWidth > 375) {
           rem = Math.floor(innerWidth / baseWidth * baseFontSize * 0.84);
      }
     document.querySelector('html').style.fontSize = rem + 'px';
}());

具体详细:
1、css设置了font-size:100px;
2、引入刚才那个js。
3、比如一个按钮设计稿件是30pxX30px 它是除以100的。最后咱们设置是0.3remX0.3rem。

它在js里面设置了三个区间:
1)  var innerWidth = Math.max(Math.min(clientWidth, 480), 320);
2)innerWidth > 362 && innerWidth <= 375
3)innerWidth > 375

上一篇下一篇

猜你喜欢

热点阅读