详解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 相关文章推荐
JS localStorage实现本地缓存的方法
Jun 22 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
Aug 13 Javascript
探讨js中的双感叹号判断
Nov 11 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
jquery.cookie.js使用指南
Jan 05 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
Jun 01 Javascript
jQuery.cookie.js使用方法及相关参数解释
Mar 06 Javascript
JS实现简易的图片拖拽排序实例代码
Jun 09 Javascript
vue.js路由跳转详解
Aug 28 Javascript
尝试自己动手用react来写一个分页组件(小结)
Feb 09 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 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
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
vue底部加载更多的实例代码
2018/06/29 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python实现将Excel转换成xml的方法示例
2018/08/25 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
校运会广播稿100字
2014/01/27 职场文书
小学五年级学生评语
2014/04/22 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
MySql数据库触发器使用教程
2022/06/01 MySQL