vue框架搭建大屏自适应方案

news2024/11/25 16:49:37

vue框架搭建大屏自适应方案

1.可使用flexible.js + rem实现宽高,字体自适应

附上flexible.js代码

(function flexible(window, document) {
    var docEl = document.documentElement;
    var dpr = window.devicePixelRatio || 1;

    // adjust body font size
    function setBodyFontSize() {
        if (document.body) {
            document.body.style.fontSize = 12 * dpr + "px";
        } else {
            document.addEventListener("DOMContentLoaded", setBodyFontSize);
        }
    }
    setBodyFontSize();

    // set 1rem = viewWidth / 10
    function setRemUnit() {
        // 这里默认是10等份,手动改为24,此时1rem=1920/24px即80px。(设计稿是1920px的)
        var rem = docEl.clientWidth / 24;
        docEl.style.fontSize = rem + "px";
    }

    setRemUnit();

    // reset rem unit on page resize
    window.addEventListener("resize", setRemUnit);
    window.addEventListener("pageshow", function (e) {
        if (e.persisted) {
            setRemUnit();
        }
    });

    // detect 0.5px supports
    if (dpr >= 2) {
        var fakeBody = document.createElement("body");
        var testElement = document.createElement("div");
        testElement.style.border = ".5px solid transparent";
        fakeBody.appendChild(testElement);
        docEl.appendChild(fakeBody);
        if (testElement.offsetHeight === 1) {
            docEl.classList.add("hairlines");
        }
        docEl.removeChild(fakeBody);
    }
})(window, document);

值得注意的是这段代码

// set 1rem = viewWidth / 10
    function setRemUnit() {
        // 这里默认是10等份,手动改为24,此时1rem=1920/24px即80px。(设计稿是1920px的)
        var rem = docEl.clientWidth / 24;
        docEl.style.fontSize = rem + "px";
    }

在其他下载的flexible.js默认是10等份的,这边改成24等份比较方便一些

将flexible.js放至utils文件夹下

在这里插入图片描述

在main.js中导入改文件
import ‘@/utils/flexible.js’

我使用的编辑器是vscode,可下载插件快速的对px转成rem,这里我安装了cssrem插件
在这里插入图片描述
点击插件设置里的扩展设置
在这里插入图片描述
将基准设置为80即可,效果如下
请添加图片描述
这样就完成了宽高和字体的自适应

echarts 的自适应

echarts 有提供一个resize()方法,可以在窗口发生变化时,进行图表的自适应,但是无法将里面的自定义字体,图片等宽高自适应,因此需要自己写一个方法去对里面的字体做处理

// 字体转换 px -> rem
export function fontChart(res) {
    let docEl = document.documentElement,
        clientWidth =
            window.innerWidth ||
            document.documentElement.clientWidth ||
            document.body.clientWidth;
    if (!clientWidth) return;
    // 此处的3840 为设计稿的宽度,记得修改!
    let fontSize = clientWidth / 1920;
    return res * fontSize;
}

将上面的代码自己随意起个名字放在utils文件夹下,并且挂载在vue实例中

main.js
在这里插入图片描述
在echarts图表使用就可以直接使用了
在这里插入图片描述

这样基本自适应就做好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NocasRule负载均衡与服务实例的权重设置

NocasRule负载均衡 .yml 配置文件配置 server:port: 8080 spring:application:name: orderservicecloud:nacos:server-addr: localhost:8848 #nocas服务地址discovery:cluster-name: HZ #集群名字 userservice: #要做配置的微服务名称ribbon:NFLoadBalancerRuleClassName: com…

游戏开发57课 性能优化14

5. 内存优化 内存优化目的是加快IO,防止卡主线程,防止频繁操作(创建/删除)内存,避免内存碎片化和占用过高。 5.1 缓存法 与CPU的缓存计算类似,思路是将需要重复创建的对象缓存起来,销毁时将它…

安装、启动与停止Apache服务

安装、启动与停止Apache服务 安装Apache相关软件 [rootcentos7 ~]# rpm -q httpd [rootcentos7-1 ~]# mkdir /opt/centos //创建目录/opt/centos [rootcentos7-1 ~]# mount /dev/cdrom /opt/centos //挂载光盘到/opt/centos 下 mount: /dev/sr0 写保护…

Spring Boot 3.0.0正式发布,Banner不再支持图片增强可观测性

本文已被https://yourbatman.cn收录;女娲Knife-Initializr工程可公开访问啦;程序员专用网盘https://wangpan.yourbatman.cn;技术专栏源代码大本营:https://github.com/yourbatman/tech-column-learning;公号后台回复“…

openCV(一)基础背景

1 认识计算机视觉 2012年AlexNet模型在ImageNet图像分类中获得比赛冠军,深度学习开始在计算机视觉领域流行。早期的计算机视觉主要集中在重建方面,2012年以后在感知和重建两个领域都受到了深度学习的影响。应用场景包括自动驾驶、机器视觉、安防监控、其…

猿如意中的【PostgreSQL 数据库】工具详情介绍

猿如意中的【PostgreSQL 数据库】工具详情介绍 一、工具名称 PostgreSQL 数据库 二、下载安装渠道 PostgreSQL 数据库V14.2 通过CSDN官方开发的【猿如意】客户端进行下载安装。 2.1 什么是猿如意? 猿如意是一款面向开发者的辅助开发工具箱,包含了效…

jenkins-pipeline与变量

本文介绍如何在pipeline中使用变量 使用jenkins预定义的环境变量 jenkins预先定义了一些环境变量,在pipeline中使用${env.key}来调用 另外安装了第三方插件,会有新的环境变量,可以使用插件Environment Inject来查看 在pipeline中使用预定义…

Java二维数组项目练习

T1.显示所有书店客户的信息 示例代码 public static void main(String[] args) {String[][] users{{"1100","18","100"},{"1101","24","834"},{"1102","13","20000"},{"1103…

软件测试——用例篇

文章目录为什么在测试前要设计测试用例基于需求设计测试用例等价类边界值错误猜测法场景法因果图正交法为什么在测试前要设计测试用例 测试用例是执行测试的依据。可以复用(回归测试的时候)衡量需求的覆盖率自动化测试的依据有借鉴意义,后续…

OH----原子量的妙用--保护usb时序

1、问题: 展锐平台,usb otg高概率不能正确检测识别到 2、思路: usb使用musb控制器,展锐的平台处理代码是musb_sprd.c,在这个文件中对usb mode做检测和切换,log级别跳到最高,在probe中的关键函…

用 Taichi 加速 Python:提速 100+ 倍!

Python 已经成为世界上最流行的编程语言,尤其在深度学习、数据科学等领域占据主导地位。但是由于其解释执行的属性,Python 较低的性能很影响它在计算密集(比如多重 for 循环)的场景下发挥作用,实在让人又爱又恨。如果你…

PAT(乙级)2022年冬季考试

此前先后花了十元去做了乙级题,从最开始分别是70,35,43,33(途中做了RobpCom,只搞定了签到题),想着报今年的冬季赛,但是报名费有点高啊,加上做下来感觉不怎么样&#xff0…

[附源码]Python计算机毕业设计Django的黄河文化科普网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

GitHub搜索开源项目

GitHub的流行, GitHub在开源世界的受欢迎程度自不必多言。再加上今天,GitHub官方又搞了个大新闻:私有仓库也改为免费使用,这在原来可是需要真金白银的买的。可见微软收购后,依然没有改变 GitHub 的定位,甚至…

使用高德地图展示点位和信息窗体展示数据及播放视频

使用高德地图做了一个在地图展示点位,并通过点击,显示直播的功能,这个任务是为了之后大屏做准备。 这是一个能展示多个点标记,并在点击的时候弹出信息窗体,并在信息窗体中播放视频,且展示相关信息以及操作…

【Lilishop商城】No3-6.模块详细设计,商品模块-2(商品及强关联附属 商品sku、批发、图册等等)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码…

队列的练习题

用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty) 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶int pop()移除并返回栈顶元素…

I2C总线式驱动开发

文章目录前言一、Linux内核对I2C总线的支持1.1、理解I2C设备驱动、I2C总线驱动以及I2C核心之间的关系1.2、i2c二级外设驱动开发涉及到核心结构体及其相关接口函数:二、I2C总线二级外设驱动开发方法-名称匹配2.1、i2c二级外设client框架:2.2、i2c二级外设…

[附源码]Nodejs计算机毕业设计基于java网上心理咨询系统数据分析Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

Docker整体架构及底层通信原理简述

Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。 Docker运行的基本流程为: 1. 用户是使用Docker Client与Docker Deamon建立通信,并发送请求给后者; 2.Docker Deamon作为Docker架构中的主体…