vue中rem的配置的方法示例


Posted in Javascript onAugust 30, 2018

在用vue或react等工具搭建一个移动端项目时,怎样做到自适应呢? 当然选择rem布局比较方便快捷.

开发移动端,我们常常要用到rem+flex,那么vue中如何配置呢,我的做法是这样:

1、在js中统一计算配置

代码如下:

export default function() {
  // var devicePixelRatio = 1;
  // var scale = 1 / devicePixelRatio;
  // document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
  // 7.5根据设计稿的横向分辨率/100得来
  // alert(document.documentElement.clientWidth)
  var deviceWidth = document.documentElement.clientWidth;
  // var deviceWidth = window.screen.availWidth
  // alert(navigator.userAgent)
  // alert(deviceWidth)
  // console.log(navigator.userAgent)
  if(deviceWidth > 750) {
    // deviceWidth = 750;
    deviceWidth = 7.5 * 50;
  }

  document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';

  // 禁止双击放大
  document.documentElement.addEventListener('touchstart', function (event) {
    if (event.touches.length > 1) {
      event.preventDefault();
    }
  }, false);
  var lastTouchEnd = 0;
  document.documentElement.addEventListener('touchend', function (event) {
    var now = Date.now();
    if (now - lastTouchEnd <= 300) {
      event.preventDefault();
    }
    lastTouchEnd = now;
  }, false);
}

然后在main.js中引入使用。

vue中rem的配置的方法示例

结构

vue中rem的配置的方法示例

main.js

然后在index.css中设置默认大小:

 vue中rem的配置的方法示例

基础css

index.scss一般也在main.js里面引入:

vue中rem的配置的方法示例

main.js

2、借助px2rem 插件

安装

npm install px2rem-loader lib-flexible --save

在项目入口文件main.js中引入lib-flexible

import 'lib-flexible/flexible.js'

在build下的 utils.js中,找到generateLoaders 方法,在这里添加 。

const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 37.5
}
}

function generateLoaders (loader, loaderOptions) {
const loaders = [cssLoader, px2remLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}

重启项目,会发现自己设置的px被转为rem 了

vue中rem的配置的方法示例

效果

以上实现转换适用于:

(1)组件中编写的<style></style>下的css

(2)从index.js或者main.js中import ‘../../static/css/reset.css'引入css

(3)在组件的<script type=”text/ecmascript-6″> import ‘../../static/css/reset.css'</script>中引入css

另外的情况不适用:

(1)组件<style></style>中@import “../../static/css/reset.css (可考虑上面(2)、(3)的形式引入)

(2)外部样式:<link rel=”stylesheet” href=”static/css/reset.css”>

(3)元素内部样式:style=”height: 417px; width: 550px;”

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript获取onclick、onchange等事件值的代码
Jul 22 Javascript
js的alert弹出框出现乱码解决方案
Sep 02 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 Javascript
javascript构造函数以及原型对象的理解
Jan 13 Javascript
jQuery插件zTree实现获取一级节点数据的方法
Mar 08 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
微信小程序非跳转式组件授权登录的方法示例
May 22 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
Sep 06 Javascript
vue实现输入一位数字转汉字功能
Dec 13 Javascript
element中table高度自适应的实现
Oct 21 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 #Javascript
vue-swiper的使用教程
Aug 30 #Javascript
分享vue里swiper的一些坑
Aug 30 #Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 #Javascript
小程序图片长按识别功能的实现方法
Aug 30 #Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 #Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
Aug 30 #Javascript
You might like
如何选购合适的收音机
2021/03/01 无线电
php Ubb代码编辑器函数代码
2012/07/05 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
PDO::_construct讲解
2019/01/27 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
JavaScript 继承详解(四)
2009/07/13 Javascript
JQuery防止退格键网页后退的实现代码
2012/03/23 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
2014/03/08 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
[02:48]DOTA2超级联赛专访海涛:你们的选择没有错
2013/06/07 DOTA
Python中的 enum 模块源码详析
2019/01/09 Python
Python Django基础二之URL路由系统
2019/07/18 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
美国山地自行车、露营、户外装备和服装购物网站:Aventuron
2018/05/05 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
内刊编辑求职自荐书范文
2014/02/19 职场文书
会计电算化实训报告
2014/11/04 职场文书
二手车转让协议书
2015/01/29 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python
68行Python代码实现带难度升级的贪吃蛇
2022/01/18 Python