vue移动端屏幕适配详解


Posted in Javascript onApril 30, 2019

flexible

vue移动端屏幕适配,查看项目地址

效果预览

# 项目clone
git clone git@github.com:NicolasGui/flexible.git

# 进入项目目录
cd flexible

# 安装依赖
npm install

# 启动服务 localhost:8080
npm run dev

原理概述

插件安装

# 插件一:amfe-flexible
npm install amfe-flexible --save
#  插件二: node-sass
npm install amfe-flexible --save  # 同时,在main.js文件内引入
npm install sass-loader --save

编写js处理方法

在utils目录下创建flex.js文件,内容如下:

import Vue from 'vue'
Vue.prototype.$setTitle = function (text) {
 document.title = text
}
Vue.prototype.$getPX = function (design, designWidth = 750) { // 750为设计稿宽度
 // 获取窗口尺寸
 let width = document.documentElement.getBoundingClientRect().width
 // 计算缩放比例
 let scale = width / designWidth
 // 获取实时尺寸
 return design * scale
}

同时,在main.js文件内引入该js文件

import Vue from 'vue'
import App from './App'
import router from './router'
import 'amfe-flexible'
import './utils/flex'
Vue.config.productionTip = false

new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>'
})

编写css处理方法

在src目录创建styles目录,同时在该目录新增common.scss文件,内容如下:

body,div,ul,ol,dl,li,dt,dd,h1,h2,h3,h4,p,form,iframe,input,textarea,a,span,em,strong,img,html,nav,header,article,button,footer,var {
 padding:0;
 margin:0;
}
body { font:12px/1.2rem "Microsoft YaHei",tahoma,arial,sans-serif;min-width:320px;position:relative; }
form,input {background:none;border:none;}
ul,dl,ol {list-style-type:none;}
h1, h2, h3, h4, h5 { font:12px/1.2rem "Microsoft YaHei",arial,tahoma; }
a { text-decoration:none; }
a:hover,a:focus { outline:none; }
table { border-collapse:collapse;border-spacing:0; }
img { border:none; }
strong,b { font-weight:normal; }
em,i,var { font-style:normal; }
p { text-indent:0; }
.clear { clear:both;height:0;line-height:0;overflow:hidden;width:0; }
.clearfix:after { clear:both;content:".";display:block;font-size:0;height:0;visibility:hidden; }
 // 尺寸转换
 @function px2rem($px, $base-font-size: 75px) { /*设计稿宽度为750,因此此处为75*/
 @if (unitless($px)) {
  @return px2rem($px + 0px); 
 } @else if (unit($px) == rem) {
  @return $px;
 }
 @return ($px / $base-font-size) * 1rem;
 }
 // 字体转换
 @mixin font-dpr($font-size) {
 font-size: $font-size;
 [data-dpr="2"] & {
  font-size: $font-size * 2;
 }
 [data-dpr="3"] & {
  font-size: $font-size * 3;
 }
 }

css内使用

<style scoped lang='scss'>
 @import '../styles/common.scss';
 .content{
  width:px2rem(750); /*750为设计稿实际尺寸*/
  font-size:px2rem(20) /*20为设计稿实际尺寸*/
</style>

js内使用

export default {
 name:'test',
 data() {
  return {
  w:0;
  }
 },
 watch:{
  getWidth() {
   this.w=this.$getPX(500);
  }
  }
 },
 computed: {
  fun() {
  return (this.w/this.$getPX(500)*100).toFixed(2) + '';
  }
 }
 }

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

Javascript 相关文章推荐
web页面数据展示新想法(json)
Jun 08 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 Javascript
JavaScript中的比较操作符&gt;、=、
Dec 31 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
Aug 31 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
Aug 02 Javascript
用jquery获取自定义的标签属性的值简单实例
Sep 17 Javascript
jQuery实现一个简单的轮播图
Feb 19 Javascript
JavaScript使用ZeroClipboard操作剪切板
May 10 Javascript
自制简易打赏功能的实例
Sep 02 Javascript
mpvue写一个CPASS小程序的示例
Sep 04 Javascript
vue学习笔记之Vue中css动画原理简单示例
Feb 29 Javascript
vue 移动端记录页面浏览位置的方法
Mar 11 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 #Javascript
微信小程序时间戳转日期的详解
Apr 30 #Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 #Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 #Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 #Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 #Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 #Javascript
You might like
php 静态页面中显示动态内容
2009/08/14 PHP
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
php之readdir函数用法实例
2014/11/13 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
Javascript 类、命名空间、代码组织代码
2011/07/31 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
vue实现重置表单信息为空的方法
2018/09/29 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
python中list列表的高级函数
2016/05/17 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
css3选择器基本介绍
2014/12/15 HTML / CSS
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
上班玩游戏检讨书
2014/02/07 职场文书
生日宴会主持词
2014/03/20 职场文书
协议书格式
2014/04/23 职场文书
植树节口号
2014/06/21 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
小学生作文评语集锦
2014/12/25 职场文书
写给医院的感谢信
2015/01/22 职场文书
三孔导游词
2015/02/05 职场文书
教师节简报
2015/07/20 职场文书
mysql sock 文件解析及作用讲解
2022/07/15 MySQL