详解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 相关文章推荐
解决FLASH需要点击激活的代码
Dec 20 Javascript
jquery easyui的tabs使用时的问题
Mar 23 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
JS中常用的正则表达式
Sep 29 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
深入理解 Koa 框架中间件原理
Oct 18 Javascript
如何通过shell脚本自动生成vue文件详解
Sep 10 Javascript
用Golang运行JavaScript的实现示例
Nov 25 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
JavaScript中layim之整合右键菜单的示例代码
Feb 06 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
关于跨站脚本攻击问题
2011/12/22 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python yield 使用浅析
2015/05/28 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
Python OS模块实例详解
2019/04/15 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
导入tensorflow时报错:cannot import name 'abs'的解决
2019/10/10 Python
Python json转字典字符方法实例解析
2020/04/13 Python
Python devel安装失败问题解决方案
2020/06/09 Python
美国面料纺织品商城:Fabric.com
2017/06/28 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
成人大专自我鉴定范文
2013/10/19 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
暑假学习心得体会
2014/09/02 职场文书
被委托人身份证明
2015/08/07 职场文书
中学语文教学反思
2016/02/16 职场文书
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers