详解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兼容标准的表格变色效果
Jun 28 Javascript
淘宝搜索框效果实现分析
Mar 05 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
Sep 26 Javascript
基于jquery实现五星好评
Nov 18 jQuery
微信小程序上传图片功能(附后端代码)
Jun 19 Javascript
vue下拉菜单组件(含搜索)的实现代码
Nov 25 Javascript
js array数组对象操作方法汇总
Mar 18 Javascript
小程序实现悬浮搜索框
Jul 12 Javascript
Angular8 简单表单验证的实现示例
Jun 03 Javascript
JavaScript实现音乐播放器
Aug 14 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类与对象中的private访问控制的疑问
2012/11/01 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
win10环境PHP 7 安装配置【教程】
2016/05/09 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
使用phantomjs进行网页抓取的实现代码
2014/09/29 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python正则抓取网易新闻的方法示例
2017/04/21 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
大众服装店创业计划书范文
2014/01/01 职场文书
中学教师请假制度
2014/02/03 职场文书
个人查摆剖析材料
2014/02/04 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
计算机软件专业求职信
2014/06/10 职场文书
离职感谢信
2015/01/21 职场文书
技术员岗位职责范本
2015/04/11 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
《女娲补天》教学反思
2016/02/20 职场文书