vue 移动端适配方案详解


Posted in Javascript onNovember 15, 2018

一、方法一:rem 布局

在主入口:index.html,<head> 标签内添加如下JS 代码:(实现在标准 375px宽度适配下,100px = 1rem。)

<script>
  (function () {
   // 在标准 375px 适配下,100px = 1rem;
   var baseFontSize = 100; 
   var baseWidth = 375;

   var set = function () {
    var clientWidth = document.documentElement.clientWidth || window.innerWidth;

    var rem = 100;
    if (clientWidth != baseWidth) {
     rem = Math.floor(clientWidth / baseWidth * baseFontSize);
    }

    document.querySelector('html').style.fontSize = rem + 'px';
   }
   set();

   window.addEventListener('resize', set);
  }());
  
 </script>

二、方法二:lib-flexible 插件实现

1、安装插件

npm i lib-flexible --save    // 载lib-flexible
npm install px2rem-loader    // 安装px2rem-loader

2、在main.js中引入lib-flexible

import 'lib-flexible/flexible'

3、在 index.html 中添加:移动适配 meta标签

<meta name="viewport" content="width=device-width,initial-scale=1.0">
//注意这两个的区别,建议添加下面的meta,反正点击输入框,页面自动缩放
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

4、更改配置

在 build/util.js 中 按如下两更改

(1)、将px2rem-loader添加到cssLoaders中

const cssLoader = {
  loader: 'css-loader',
  options: {
   minimize: process.env.NODE_ENV === 'production',
   sourceMap: options.sourceMap
  }
 }
 const px2remLoader = {
  loader: 'px2rem-loader',
  options: {
   //一般设置75
   remUnit: 35
  }
 }

(2)、在generateLoaders方法中添加px2remLoader

function generateLoaders(loader, loaderOptions) {
  const loaders = options.usePostCSS ? [cssLoader, postcssLoader,px2remLoader] : [cssLoader,px2remLoader]

  if (loader) {
   loaders.push({
    loader: loader + '-loader',
    options: Object.assign({}, loaderOptions, {
     sourceMap: options.sourceMap
    })
   })
  }

  // Extract CSS when that option is specified
  // (which is the case during production build)
  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }
 }

总结要修改的地方

vue 移动端适配方案详解

添加位置.png

5、重启

npm run dev  // 重新运行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
Jul 31 Javascript
Js获取数组最大和最小值示例代码
Oct 29 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
Apr 17 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 Javascript
easyui-datagrid开发实践(总结)
Aug 02 Javascript
vue 实现超长文本截取,悬浮框提示
Jul 29 Javascript
Vue与React的区别和优势对比
Dec 18 Vue.js
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 #Javascript
vue地址栏直接输入路由无效问题的解决
Nov 15 #Javascript
微信小程序自定义toast弹窗效果的实现代码
Nov 15 #Javascript
搭建基于express框架运行环境的方法步骤
Nov 15 #Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 #Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 #Javascript
微信小程序页面缩放式侧滑效果的实现代码
Nov 15 #Javascript
You might like
PHP4在Windows2000下的安装
2006/10/09 PHP
初级的用php写的采集程序
2007/03/16 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
JavaScript 应用类库代码
2008/06/02 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
jquery实现对联广告的方法
2015/02/05 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
基于JS组件实现拖动滑块验证功能(代码分享)
2016/11/18 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
Python2.7读取PDF文件的方法示例
2017/07/13 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
pygame实现俄罗斯方块游戏(基础篇3)
2019/10/29 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
Python如何执行系统命令
2020/09/23 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
住房公积金接收函
2014/01/09 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
庆六一活动总结
2014/08/29 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
运动会广播稿200字
2014/10/18 职场文书
个人年终总结怎么写
2015/03/09 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
Python Matplotlib绘制动画的代码详解
2022/05/30 Python