适用于vue的移动端table插件_vue移动端屏幕适配详解

本文介绍了如何在Vue项目中实现移动端屏幕适配,通过使用flexible.js和px2rem进行尺寸转换,确保在不同设备上显示效果一致。详细步骤包括项目配置、插件安装、JS和CSS处理方法,以及实际应用示例。
摘要由CSDN通过智能技术生成

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: ''

})

编写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内使用

@import '../styles/common.scss';

.content{

width:px2rem(750); /*750为设计稿实际尺寸*/

font-size:px2rem(20) /*20为设计稿实际尺寸*/

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移动端屏幕适配详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对w3xue网站的支持!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值