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 相关文章推荐
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
Mar 01 Javascript
js中AppendChild与insertBefore的用法详细解析
Dec 16 Javascript
javascript消除window.close()的提示窗口
May 20 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
Vue数据驱动模拟实现1
Jan 11 Javascript
ReactNative页面跳转Navigator实现的示例代码
Aug 02 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
详解JavaScript中typeof与instanceof用法
Oct 24 Javascript
js实现页面多个日期时间倒计时效果
Jun 20 Javascript
详解Vue中组件传值的多重实现方式
Aug 16 Javascript
在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
Zend引擎的发展 [15]
2006/10/09 PHP
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
2009/07/01 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
PHP类型约束用法示例
2016/09/28 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
jQuery学习笔记之toArray()
2014/06/09 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
django 发送手机验证码的示例代码
2018/04/25 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
python如何绘制疫情图
2020/09/16 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
html5 浏览器支持 如何让所有的浏览器都支持HTML5标签样式
2012/12/07 HTML / CSS
HTML5+css3:3D旋转木马效果相册
2017/01/03 HTML / CSS
人事主管的岗位职责
2013/11/16 职场文书
电焊工工作岗位职责
2014/02/06 职场文书
母亲节感恩寄语
2014/02/21 职场文书
抵押贷款承诺书
2014/05/30 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
父母教会我观后感
2015/06/17 职场文书
python - timeit 时间模块
2021/04/06 Python
MySQL实现配置主从复制项目实践
2022/03/31 MySQL
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers