详解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 相关文章推荐
扩展jQuery 键盘事件的几个基本方法
Oct 30 Javascript
JavaScript生成GUID的多种算法小结
Aug 18 Javascript
javascript 3d 逐侦产品展示(核心精简)
Mar 26 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
浅析JavaScript中的array数组类型系统
Jul 18 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
Dec 08 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
Dec 22 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
小白教程|一小时上手最流行的前端框架vue(推荐)
Apr 10 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
Nov 07 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
laravel5使用freetds连接sql server的方法
2018/12/07 PHP
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
微信小程序之圆形进度条实现思路
2018/02/22 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
Python模块学习 re 正则表达式
2011/05/19 Python
python实现基本进制转换的方法
2015/07/11 Python
Python中django学习心得
2017/12/06 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
python 字符串和整数的转换方法
2018/06/25 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
使用python远程操作linux过程解析
2019/12/04 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
前台接待岗位职责
2013/12/03 职场文书
全国道德模范事迹
2014/02/01 职场文书
知识竞赛主持词
2014/03/26 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
八年级历史教学反思
2016/02/19 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书