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 相关文章推荐
使用prototype.js进行异步操作
Feb 07 Javascript
JavaScript DOM 学习第二章 编辑文本
Feb 19 Javascript
为开发者准备的10款最好的jQuery日历插件
Feb 04 Javascript
JavaScript计划任务后台运行的方法
Dec 18 Javascript
Ionic如何实现下拉刷新与上拉加载功能
Jun 03 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
AngularJS表单基本操作
Jan 09 Javascript
vue一步步实现alert功能
Jul 05 Javascript
js时间戳与日期格式之间转换详解
Dec 11 Javascript
在vue中通过axios异步使用echarts的方法
Jan 13 Javascript
如何获取TypeScript的声明文件.d.ts
May 01 Javascript
vue+高德地图写地图选址组件的方法
May 18 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
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
treepanel动态加载数据实现代码
2012/12/15 Javascript
动态的绑定事件addEventListener方法的使用
2014/01/24 Javascript
DOM节点删除函数removeChild()用法实例
2015/01/12 Javascript
浅谈JavaScript中null和undefined
2015/07/09 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
Python break语句详解
2014/03/11 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
django主动抛出403异常的方法详解
2019/01/04 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
教师产假请假条范文
2014/04/10 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
升职感谢信
2015/01/22 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Java基础-封装和继承
2021/07/02 Java/Android
pandas中pd.groupby()的用法详解
2022/06/16 Python