首页 > 其他分享 >数据大屏最简单自适应方案 scale

数据大屏最简单自适应方案 scale

时间:2023-03-15 20:45:34浏览次数:31  
标签:scale const handleScreenAuto 适配 适应 大屏

使用scale适配大屏。实现数据大屏在任何分辨率的电脑上均可安然运作。无需特定编写rem单位,也不需要考虑单位使用失误导致适配不完全。您即使全部用position去定位在其他屏幕上都不会乱。(%和px随便用);

const App = () => {
  //数据大屏自适应函数
  const handleScreenAuto = () => {
    const designDraftWidth = 1920; //设计稿的宽度
    const designDraftHeight = 960; //设计稿的高度
    //根据屏幕的变化适配的比例
    const scale =
      document.documentElement.clientWidth /
        document.documentElement.clientHeight <
      designDraftWidth / designDraftHeight
        ? document.documentElement.clientWidth / designDraftWidth
        : document.documentElement.clientHeight / designDraftHeight;
    //缩放比例
    (
      document.querySelector('#screen') as any
    ).style.transform = `scale(${scale}) translate(-50%)`;
  };

  //React的生命周期 如果你是vue可以放到mountd或created中
  useEffect(() => {
    //初始化自适应  ----在刚显示的时候就开始适配一次
    handleScreenAuto();
    //绑定自适应函数   ---防止浏览器栏变化后不再适配
    window.onresize = () => handleScreenAuto();
    //退出大屏后自适应消失   ---这是react的组件销毁生命周期,如果你是vue则写在deleted中。最好在退出大屏的时候接触自适应
    return () => (window.onresize = null);
  }, []);

  return (
    <div className="screen-root">
      <div className="screen" id="screen">
        {
          // 大屏内容
        }
      </div>
    </div>
  );
};

    
    /*
      CSS部分  --除了设计稿的宽高是根据您自己的设计稿决定以外,其他复制粘贴就完事
    */  
  .screen-root {
    height: 100%;
    width: 100%;
    .screen {
        display: inline-block;
        width: 1920px;  //设计稿的宽度
        height: 960px;  //设计稿的高度
        transform-origin: 0 0;
        position: absolute;
        left: 50%;

    }

}

标签:scale,const,handleScreenAuto,适配,适应,大屏
From: https://www.cnblogs.com/da-datang/p/17219926.html

相关文章

  • 一种简单的大屏适配方法
    大屏项目通常只需要全屏显示,本文的方法是一种简便的实现方式,具体实现思路就是获取屏幕的尺寸,使用transform属性保持页面的适配,这样不管页面的缩放比例是什么样,页面的比例始......
  • 经验分享|BI数据可视化大屏的颜色有什么讲究?
    也不知道具体是从什么时候开始,市场部接到越来越多的BI数据可视化大屏项目咨询,有用于展示数据的,也有用于企业监控数据、辅助数据化运营管理的。在这期间就有客户咨询到BI数据......
  • 自适应与响应式网页设计
    现代网站需要在每个屏幕上都具有良好的外观和功能。这不完全是新闻快报,因为网页设计师多年来一直被告知这一点。但是实现它的方法不止一种,例如自适应设计和响应式设计,我们......
  • vue2使用ECharts自适应大小
    1.安装监听容器大小变化的插件npminstallelement-resize-detector--save2.ECharts已经有重新绘制图表的函数 resize();<template><divid="home">......
  • Grid布局,根据元素个数,自适应宽高
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content=......
  • 关于sklearn中StandardScaler的使用方式
    在机器学习中经常会使用StandardScaler进行数据归一化,注意一旦调整好StandardScaler以后就保存下来,后面如果进行测试单个时,可以进行加载并对其进行标准化StandardScaler......
  • m自适应FSK解调系统误码率matlab仿真
    1.算法描述FSK信号的解调也有非相干和相干两种,FSK信号可以看作是用两个频率源交替传输得到的,所以FSK的接收机由两个并联的ASK接收机组成。(1)相干解调相干解调是利用......
  • m自适应FSK解调系统误码率matlab仿真
    1.算法描述       FSK信号的解调也有非相干和相干两种,FSK信号可以看作是用两个频率源交替传输得到的,所以FSK的接收机由两个并联的ASK接收机组成。 (1)相干解调......
  • 终于说有人清楚了BI仪表板和大屏的区别
    最近的工作中,总是有人问,大屏和仪表板有什么区别。今天就把这两个的区别梳理了一下。小编在以前的工作中大屏和仪表板相关的的项目都接触过。这两个概念确实很像。有些时候确......
  • 查询性能: TDengine 最高达到了 InfluxDB 的 37 倍、 TimescaleDB 的 28.6 倍
    在上一篇文章《写入性能:TDengine最高达到InfluxDB的10.3倍,TimeScaleDB的6.74倍》中,我们基于TSBS 时序数据库(TimeSeriesDatabase)性能基准测试报告对三大数据库......