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 相关文章推荐
对联广告js flash激活
Oct 19 Javascript
html中table数据排序的js代码
Aug 09 Javascript
JavaScript cookie的设置获取删除详解
Feb 11 Javascript
详解js闭包
Sep 02 Javascript
JS选项卡动态替换banner图片路径的方法
May 11 Javascript
JavaScript事件处理的方式(三种)
Apr 26 Javascript
javascript汉字拼音互转的简单实例
Oct 09 Javascript
小程序click-scroll组件设计
Jun 18 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
JavaScript实现简单日历效果
Sep 11 Javascript
JS class语法糖的深入剖析
Jul 07 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 explode函数实例代码
2012/02/27 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
jquery $.ajax各个事件执行顺序
2010/10/15 Javascript
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
浅谈js的html元素的父节点,子节点
2016/08/06 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
详解Python验证码识别
2016/01/25 Python
Python(Django)项目与Apache的管理交互的方法
2018/05/16 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python SVD压缩图像的实现代码
2019/11/05 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
2014年计算机专业个人自我评价
2014/01/19 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
七一慰问简报
2015/07/20 职场文书
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python