时间:2021-05-26
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 = falsenew 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) { @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); font-size:px2rem(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移动端屏幕适配详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
之前写过一篇关于移动端屏幕适配:移动端屏幕适配的解决,今天来聊一聊基于vue-cli配置的移动端屏幕适配问题。配方还是一样:手淘的lib-flexible+re
使用vue开发移动端页面时,往往需要实现页面根据不同设备屏幕进行尺寸的适配,实现将px自动换算成rem单位,其实只需要安装下面的两个插件即可快速实现移动端适配问
前言最近整理了一下以前学习前端的笔记,发现自己对移动web端屏幕适配(rem)这一块并没有真正理解,只是会用。接下来,把自己的一些对移动web端屏幕适配(rem
在开发移动端界面时,移动端适配一直是一个比较头疼的事情,常见的移动端适配有viewport适配,rem适配,百分比适配等等,在这里我们只介绍viewport适配
前言最近在用vue做移动端项目,网上找了一些移动端适配的方案,个人觉得手淘团队flexible.js还是比较容易上手,在这里做下总结。主体flexible.js