当前位置: 首页 > news >正文

大前端数据大屏可视化-适配各种分辨率

1.采用scale的缩放,结合设计图的1920和1080(能实现全屏,没有白边,简单直接)

// 通过scale实现大屏适配function screen() {let w = window.innerWidth;let h = window.innerHeight;console.log(w, h);if (w != 1920 || h != 1080) {let scale = `scale(${w / 1920}, ${h / 1080})`;document.body.style.transform = scale;document.body.style.transformOrigin = "0 0";document.body.style.width = "1920px";document.body.style.height = "1080px";} else {document.body.style.transform = "scale(1, 1)";document.body.style.width = "100%";document.body.style.height = "100%";}}window.onresize = function () {screen();};

缺点:会出现字体图标会失真,如果使用three.js可能有点问题,可能需要配置拾取坐标(利用scale的变量)

2.采用scale,和第二个scale有一些差别(能接受左右有留白

封装的js代码如下:

import { ref } from "vue";export default function windowResize() {// * 指向最外层容器const screenRef = ref();// * 定时函数const timer = ref(0);// * 默认缩放值const scale = {width: "1",height: "1",};// * 设计稿尺寸(px)const baseWidth = 1920;const baseHeight = 1080;// * 需保持的比例(默认1.77778)const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5));const calcRate = () => {// 当前宽高比const currentRate = parseFloat((window.innerWidth / window.innerHeight).toFixed(5));if (screenRef.value) {if (currentRate > baseProportion) {// 表示更宽scale.width = ((window.innerHeight * baseProportion) /baseWidth).toFixed(5);// 计算宽度缩放比例scale.height = (window.innerHeight / baseHeight).toFixed(5);screenRef.value.style.transform = `scale(${scale.width}, ${scale.height})`;} else {// 表示更高scale.height = (window.innerWidth /baseProportion /baseHeight).toFixed(5);// 计算高度缩放比例scale.width = (window.innerWidth / baseWidth).toFixed(5);screenRef.value.style.transform = `scale(${scale.width}, ${scale.height})`;}}};const resize = () => {clearTimeout(timer.value);timer.value = window.setTimeout(() => {calcRate();}, 200);};// 改变窗口大小重新绘制const windowDraw = () => {window.addEventListener("resize", resize);};// 改变窗口大小重新绘制const unWindowDraw = () => {window.removeEventListener("resize", resize);};return {screenRef,calcRate,windowDraw,unWindowDraw,};
}

vue3中调用代码如下:

注意:

(1)需要禁用body的滚动条overflow: hidden;如果不禁用的话,按下F12会出现滚动条,导致右边出现白条

(2)左右留白可以用外面盒子包含里面盒子,外面盒子用背景色或者图片,减小留白影响


文章转载自:

http://HGEx4pUq.xcfmh.cn
http://nAvdUvlI.xcfmh.cn
http://fuQ3270O.xcfmh.cn
http://4yDGur0V.xcfmh.cn
http://ID7dH4aq.xcfmh.cn
http://5F88mb4y.xcfmh.cn
http://GcxEZux9.xcfmh.cn
http://6qyjd4kq.xcfmh.cn
http://7wPo24bL.xcfmh.cn
http://qj9sQ9nL.xcfmh.cn
http://F0PBOk6C.xcfmh.cn
http://ILg7ejy8.xcfmh.cn
http://fqKpcAJG.xcfmh.cn
http://7cI9FfZf.xcfmh.cn
http://lmAnLeAI.xcfmh.cn
http://LQygCCk9.xcfmh.cn
http://4YBEIPVc.xcfmh.cn
http://939gXfBj.xcfmh.cn
http://H2nrKM16.xcfmh.cn
http://PyLO8wEY.xcfmh.cn
http://94iSOrpx.xcfmh.cn
http://M6QCowEU.xcfmh.cn
http://tbDJWfLi.xcfmh.cn
http://6546hk8M.xcfmh.cn
http://9dSA5Wvr.xcfmh.cn
http://S5wO0HjJ.xcfmh.cn
http://u56ru6dj.xcfmh.cn
http://DsqbKYa1.xcfmh.cn
http://gtgoMcAW.xcfmh.cn
http://OjFTguAV.xcfmh.cn
http://www.dtcms.com/a/368794.html

相关文章:

  • Java笔记20240726
  • Aspose.Words for .NET 25.7:支持自建大语言模型(LLM),实现更安全灵活的AI文档处理功能
  • 怎样利用AE统计数据优化安防芯片ISP的图像质量?
  • 基于Python读取多个excel竖向拼接为一个excel
  • 深入解析汇编语言的奥秘
  • C++语言程序设计——06 字符串
  • 十二、软件系统分析与设计
  • flink 伪代码
  • AGENTS.md: AI编码代理的开放标准
  • 代码可读性的详细入门
  • 单元测试:Jest 与 Electron 的结合
  • 02-Media-5-mp4demuxer.py 从MP4文件中提取视频和音频流的示例
  • K8s访问控制(一)
  • 动物专家?单词测试!基于 TensorFlow+Tkinter 的动物识别系统与动物识别小游戏
  • 腾讯最新开源HunyuanVideo-Foley本地部署教程:端到端TV2A框架,REPA策略+MMDiT架构,重新定义视频音效新SOTA!
  • GD32入门到实战33--用单片机内部FLASH保护产品参数
  • Python的RSS/Atom源解析库feedparser
  • 抓虫:loongarch64架构selinux强防开启程序执行报错execmod
  • 酷柚易汛ERP 2025-09-05系统升级日志
  • STM32——WDG看门狗
  • Redis 发布订阅:社区的 “通知栏与分类订阅” 系统
  • WordPress性能优化全攻略:从插件实战到系统级优化
  • [新启航]激光频率梳 3D 轮廓测量 - 蓝光机械 3D 扫描的工作原理及优缺点
  • 3DEXPERIENCE平台五大实用技巧指南
  • 彻底搞懂深度学习-模型压缩(减枝、量化、知识蒸馏)
  • 概率论第二讲——一维随机变量及其分布
  • ChartGPT深度体验:AI图表生成工具如何高效实现数据可视化与图表美化?
  • 【AndroidStudio】官网下载免安装版,AndroidStudio压缩版的配置和使用
  • Android Activity的启动流程
  • 将 Android 设备的所有系统日志(包括内核日志、系统服务日志等)完整拷贝到 Windows 本地