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 Element学习笔记(篇一)
Oct 26 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
Apr 13 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
js的2种继承方式详解
Mar 04 Javascript
从数据库读取数据后将其输出成html标签的三种方法
Oct 13 Javascript
跟我学习javascript的执行上下文
Nov 18 Javascript
javascript表单事件处理方法详解
May 15 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
web前端页面生成exe可执行文件的方法
Feb 08 Javascript
JS中touchstart事件与click事件冲突的解决方法
Mar 12 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 Javascript
JavaScript简易计算器制作
Jan 17 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
基于python中__add__函数的用法
2019/11/25 Python
python——全排列数的生成方式
2020/02/26 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
应届毕业生个人自荐信范文
2013/11/30 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
小学六一主持词开场白
2015/05/28 职场文书
毕业典礼致辞
2015/07/29 职场文书