vue 移动端适配

2020-04-24  本文已影响0人  lazy_tomato

vue适配:以750设计稿为基准,在不同屏幕尺寸下如何适配

// 安装postcss-pxtorem  会自动把px转化成rem的插件
cnpm i postcss-pxtorem

// 在postcss.config.js配置
module.exports = {
  plugins: {
    'postcss-pxtorem': { 
      rootValue: 32, 
      propList: ['*'], 
      minPixelValue: 2 
    }
  }
};
/* 
rootValue:这里就是根目录的字体大小是32px,一般设计稿是750,比iphone6的大一倍,所以设置成16的两倍,就是32px;
proplist:就是那些属性需要转换成rem,这里是全部的意思
minPixelValue:就是最小转换单位,这是最小转换单位是2px的意思
*/

// js动态改变根节点
(function() {
    function autoRootFontSize() {
        document.documentElement.style.fontSize = Math.min(screen.width,document.documentElement.getBoundingClientRect().width)  /  750 * 32 + 'px';
    }
    window.addEventListener('resize', autoRootFontSize);
    autoRootFontSize();
})();

Safari中设置了禁止用户缩放无效的问题: iOS 10开始,meta设置在Safari内无效了

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" />
<script>
    window.onload=function () {
    document.addEventListener('touchstart',function (event) {
        if(event.touches.length>1){
            event.preventDefault();
        }
    });
    var lastTouchEnd=0;
    document.addEventListener('touchend',function (event) {
        var now=(new Date()).getTime();
        if(now-lastTouchEnd<=300){
            event.preventDefault();
        }
        lastTouchEnd=now;
    },false);
    document.addEventListener('gesturestart', function (event) {
        event.preventDefault();
    });
}
</script>
上一篇下一篇

猜你喜欢

热点阅读