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 版本自动生成文章摘要
Jul 23 Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
JavaScript判断用户是否对表单进行了修改的方法
Mar 18 Javascript
在JavaScript的正则表达式中使用exec()方法
Jun 16 Javascript
最佳的JavaScript错误处理实践
Jul 16 Javascript
Node.js的特点详解
Feb 03 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
Bootstrap实现的表格合并单元格示例
Feb 06 Javascript
浅谈Vue 性能优化之深挖数组
Dec 11 Javascript
vue 实现图片懒加载功能
Dec 31 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
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
innerHTML与jquery里的html()区别介绍
2012/10/12 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
javascript闭包的理解
2015/04/01 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
nodejs redis 发布订阅机制封装实现方法及实例代码
2016/12/15 NodeJs
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
vue实现一拉到底的滑动验证
2019/07/25 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
使用Python将图片转正方形的两种方法实例代码详解
2020/04/29 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
html5 兼容IE6结构的实现代码
2012/05/14 HTML / CSS
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
《燕子专列》教学反思
2014/02/21 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
教师党员个人整改措施材料
2014/09/16 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
小学音乐课教学反思
2016/02/18 职场文书