详解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实现同一个页面多个渐变效果的方法
Apr 10 Javascript
jquery控制显示服务器生成的图片流
Aug 04 Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
Jan 23 Javascript
layui表格数据复选框回显设置方法
Sep 13 Javascript
JavaScript实现PC端四格密码输入框功能
Feb 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
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php命名空间学习详解
2014/02/27 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
Laravel构建即时应用的一种实现方法详解
2017/08/31 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
php实现websocket实时消息推送
2018/03/30 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
JavaScript事件对象深入详解
2018/12/30 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
对pandas replace函数的使用方法小结
2018/05/18 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
pymysql模块的操作实例
2019/12/17 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
大学同学聚会邀请函
2014/01/19 职场文书
高中军训感想300字
2014/03/04 职场文书
授权委托书范本
2014/04/03 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP