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 相关文章推荐
JavaScript 基础问答三
Dec 03 Javascript
javascript 显示当前系统时间代码
Dec 28 Javascript
用jQuery打造TabPanel效果代码
May 22 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
Sep 16 Javascript
利用javascript判断文件是否存在
Dec 31 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
Jun 13 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
Jan 28 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
Aug 18 Javascript
Node.js中常规的文件操作总结
Oct 13 Javascript
JS常用算法实现代码
Nov 14 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
在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 gbk环境下json_dencode传送来的汉字
2012/11/13 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
python的re模块应用实例
2014/09/26 Python
python实现简单的计时器功能函数
2015/03/14 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Python imread、newaxis用法详解
2019/11/04 Python
解决import tensorflow as tf 出错的原因
2020/04/16 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
Python爬取数据并实现可视化代码解析
2020/08/12 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
在校大学生自我评价范文
2014/09/12 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
新闻报道稿范文
2015/07/23 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript