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 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
Jun 02 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
JavaScript控制Session操作方法
Jan 17 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 Javascript
js限制checkbox选中个数以限制六个为例
Jul 15 Javascript
jQuery截取指定长度字符串代码
Aug 21 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
May 15 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 Javascript
vue项目中引入vue-datepicker插件的详解
May 14 Javascript
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
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入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
Yii使用ajax验证显示错误messagebox的解决方法
2014/12/03 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
基于vue写一个全局Message组件的实现
2019/08/15 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
python显示天气预报
2014/03/02 Python
Python获取网页上图片下载地址的方法
2015/03/11 Python
Python基于SMTP协议实现发送邮件功能详解
2018/08/14 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
费用会计岗位职责
2014/01/01 职场文书
中学教师请假制度
2014/02/03 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
学校欢迎标语
2014/06/18 职场文书
高三霸气励志标语
2014/06/24 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
工艺技术员岗位职责
2015/02/04 职场文书
《月光曲》教学反思
2016/02/16 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS