详解vue.js移动端配置flexible.js及注意事项


Posted in Javascript onApril 10, 2019

前言

最近在用vue做移动端项目,网上找了一些移动端适配的方案,个人觉得手淘团队flexible.js还是比较容易上手,在这里做下总结。

主体

flexible.js适配方案采用rem布局,根据屏幕分辨率大小不同,调整根元素html的font-size,从而达到每个元素宽高自动变化,适配不同屏幕

1.安装lib-flexible.js

npm install lib-flexible --save

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

import 'lib-flexible/flexible'

通过要以上两步,就完成了在vue项目使用lib-flexible来解决移动端适配了。

lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。假如设计稿的宽度是750px,此时1rem应该等于75px。假如量的某个元素的宽度是150px,那么在css里面定义这个元素的宽度就是 width: 2rem

这里需要注意几点:

1.检查一下html文件的head中,如果有 meta name="viewport"标签,需要将他注释掉,因为如果有这个标签的话,lib-flexible就会默认使用这个标签。而我们要使用lib-flexible自己生成的 meta name="viewport"来达到高清适配的效果。

2.因为html的font-size是根据屏幕宽度除以10计算出来的,所以我们需要设置页面的最大宽度是10rem。

3.如果每次从设计稿量出来的尺寸都手动去计算一下rem,就会导致我们效率比较慢,还有可能会计算错误,所以我们可以使用px2rem-loader自动将css中的px转成rem

使用 webpack 的 px2rem-loader,自动将px转换为rem

1.安装px2rem-loader

npm install px2rem-loader --save-dev

1.配置px2rem-loader

首先找到 build/utils.js文件,在utils.js中添加如下配置

详解vue.js移动端配置flexible.js及注意事项

找到generateLoaders方法,在函数里如下配置

详解vue.js移动端配置flexible.js及注意事项

1.px2rem 用法

安装px2rem后,再使用px上有些不同,大家可以参考px2rem官方介绍,下面简单介绍一下。

•直接写px,编译后会直接转化成rem —- 除开下面两种情况,其他长度用这个

•在px后面添加/*no*/,不会转化px,会原样输出。 —- 一般border需用这个

•在px后面添加/*px*/,会根据dpr的不同,生成三套代码。—- 一般字体需用这个

下面是本人写的实例代码,可以参考

原始代码:

.box{
  width: 150px;
  font-size: 28px; /*px*/
  border: 1px solid #ddd; /*no*/
}

编译后生成代码:

.box{
  width: 2rem;
  border: 1px solid #ddd;
}
[data-dpr="1"] .selector {
  font-size: 14px;
}
[data-dpr="2"] .selector {
  font-size: 28px;
}
[data-dpr="3"] .selector {
  font-size: 42px;
}

这样基本配置就完成了,重启项目就可以使用lib-flexible+rem编写移动端页面了

后缀

交个朋友,可以一起进阶前端学习

找到我: GitHub

总结

以上所述是小编给大家介绍的vue.js移动端配置flexible.js及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js文字滚动停顿效果代码
Jun 28 Javascript
javascript 解析url的search方法
Feb 09 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
Mar 11 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 Javascript
微信web端后退强制刷新功能的实现代码
Mar 04 Javascript
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
vue中el-upload上传图片到七牛的示例代码
Oct 19 Javascript
小程序分享模块超级详解(推荐)
Apr 10 #Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 #Javascript
Vue中computed、methods与watch的区别总结
Apr 10 #Javascript
JavaScript 性能提升之路(推荐)
Apr 10 #Javascript
详解vue-cli3 中跨域解决方案
Apr 10 #Javascript
js中数组常用方法总结(推荐)
Apr 09 #Javascript
JS隐藏号码中间4位代码实例
Apr 09 #Javascript
You might like
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
json跟xml的对比分析
2008/06/10 Javascript
javascript 放大镜效果js组件 qsoft.PopBigImage.v0.35 加入了chrome支持
2009/04/07 Javascript
jquery tools之tooltip
2009/07/25 Javascript
理解 JavaScript 预解析
2009/10/25 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
React Native之TextInput组件解析示例
2017/08/22 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
Vue.js的模板语法详解
2020/02/16 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
将Python代码打包为jar软件的简单方法
2015/08/04 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
阿里云ECS服务器部署django的方法
2019/08/29 Python
python可视化text()函数使用详解
2020/02/11 Python
用python写PDF转换器的实现
2020/10/29 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
护士专业推荐信
2013/11/02 职场文书
迷你西餐厅创业计划书范文
2013/12/31 职场文书
学生会部长竞聘书
2014/03/31 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
大足石刻导游词
2015/02/02 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Docker下安装Oracle19c
2022/04/13 Servers