详解vue中移动端自适应方案


Posted in Javascript onMay 05, 2019

方案1:

直接引入js  (自己 写的动态改变fontsize的js)

function htRem() {
	  var ww = document.documentElement.clientWidth;
	  if (ww > 750) {
	    ww = 750;
	  }
	  document.documentElement.style.fontSize = ww / 7.5 + "px";
	}
	htRem();
	window.onresize = function() {
	  htRem();
	};

在main.js中import引入即可
方案二:手淘的 lib-flexible + rem

配置 flexible

安装 lib-flexible

在命令行中运行如下安装:

npm i lib-flexible --save

引入 lib-flexible

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

// main.js
import 'lib-flexible'

添加 meta 标签

在项目根目录的 index.html 中添加如下 meta

<meta name="viewport" content="width=device-width, initial-scale=1.0">

px 转 rem

实际开发中,我们通过设计稿得到的值单位是 px,所以要将 px 转换成 rem 再写进样式中。
将 px 转换成 rem 我们将使用 px2rem 这个工具,它有 webpack 的 loader:px2rem-loader

安装 px2rem-loader

在命令行中运行如下安装:

npm i px2rem-loade --save-dev

配置 px2rem-loade

在 vue-cli 生成的 webpack 配置中,vue-loader 的 options 和其他样式文件 loader 最终是都是由 build/utils.js 里的一个方法生成的。

我们只需在 cssLoader 后再加上一个 px2remLoader 即可,px2rem-loader 的 remUnit 选项意思是 1rem=多少像素,结合 lib-flexible 的方案,我们将 px2remLoader 的 options.remUnit 设置成设计稿宽度的 1/10,这里我们假设设计稿宽为 750px。

// utils.js
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
var px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 75
}
}
// ...

并放进 loaders 数组中

// utils.js
function generateLoaders(loader, loaderOptions) {
var loaders = [cssLoader, px2remLoader]
// ...

修改配置后需要重启,然后我们在组件中写单位直接写 px,设计稿量多少就可以写多少了,舒服多了。

以上所述是小编给大家介绍的vue移动端自适应详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
ext jquery 简单比较
Apr 07 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
移动节点的jquery代码
Jan 13 Javascript
javascript实现的一个带下拉框功能的文本框
May 08 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
May 21 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
JavaScript SHA-256加密算法详细代码
Oct 06 Javascript
AngularJS执行流程详解
Feb 17 Javascript
mpvue项目中使用第三方UI组件库的方法
Sep 30 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
Oct 25 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 #Javascript
彻底揭秘keep-alive原理(小结)
May 05 #Javascript
angular4+百分比进度显示插件用法示例
May 05 #Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
May 05 #Javascript
Vue+Express实现登录状态权限验证的示例代码
May 05 #Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
May 05 #Javascript
浅谈Node 异步IO和事件循环
May 05 #Javascript
You might like
php session 预定义数组
2009/03/16 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
jquery 打开窗口返回值实现代码
2010/03/04 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
JavaScript canvas绘制渐变颜色的矩形
2020/02/18 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python解析树及树的遍历
2016/02/03 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
用python处理MS Word的实例讲解
2018/05/08 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
python科学计算之narray对象用法
2019/11/25 Python
使用python去除图片白色像素的实例
2019/12/12 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
建筑行业的大学生自我评价
2013/12/08 职场文书
如何写好建议书
2014/03/13 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
公司人力资源管理制度
2015/08/05 职场文书
关于五一放假的通知
2015/08/18 职场文书