大屏可视化
大屏可视化一般是用于大屏战术,而不同的大屏设备分辨率和宽高比不太一样,所以同一个网页需要在不同的大屏上完美展示,就需要做大屏适配,大屏适配有以下两种结局方案:
1,使用网页缩放
用法:适用于缩放比例不大,微调的大屏,原始比例和大屏比例差比不大的情况
原理:计算屏幕窗口显示区域与box尺寸的比例,然后让box缩放相应的比例进行拉伸
按照UI设计稿的原始尺寸(1920*1080),使用px为单位实现固定尺寸的图表,适配时,使王爷缩放以占满整个屏幕
-
好处:操作方便,不易出错
-
去点:图形和文字会拉伸变形
#box { width: 1920px; height: 1080px; } body { overflow: hidden; }
<script> // 使图表全屏显示 function fullScreen() { // 使用缩放方案使容器box铺满整个屏幕 // 原理:计算屏幕窗口显示区域与box尺寸的比例,然后让box缩放相应的比例进行拉伸 // 计算:水平方向的拉伸比例 var ratioX = window.innerWidth / box.offsetWidth; // 计算垂直方向的拉伸比例 var ratioV = window.innerHeight / box.offsetHeight; // 让box容器拉伸缩放到全屏 $("#box").css({ transform: `scale(${ratioX},${ratioV})`, // 设置缩放基准点为左上角,视图拉伸时左上角不动,往右下角拉伸,(默认基准点在中心) transformOrigin: '0 0' }) } window.onresize = fullScreen; </script>
先计算水平方向和垂直方向的拉伸比例,然后用transform:scale(x,y) 来设置box容器的缩放比例,x为水平方向的拉伸比例,y为垂直方向的拉伸比例。然后你会发现设置完之后会有留白,是因为缩放的基准点此时是在中心。所以通过transformOrigin设置缩放基准点为左上角,视图拉伸时左上角不懂,往右下角拉伸(默认基准点在中心)。当窗口大小发生改变时,进行大屏配适。
2,图表的尺寸和位置统一使用vw,vh做单位,宽度都用vw单位,高度都用vh单位
视口:viewport 指的是浏览器显示窗口,这里有两个新增单位 vw和vh
-
vw :viewport width 视口宽度,显示区域宽度
-
vh :viewport height 视口高度,显示区域高度
-
vw 和vh 是css中使用的长度单位
-
1vw 是显示宽度的百分之一 100vw == 窗口宽
-
1vh 是显示高度的百分之一 100vh == 窗口高
-
大屏适配化组成的每一个盒子或者图片都需要用vw 和 vh 设置。把px都换成vw 和 vh
#box { /* width: 1920px; */ width: 100vw; /* height: 1080px; */ height: 100vh; background-image: url("imgs/bg.png"); background-size: 100vw 100vh; }
补:css动画旋转
<img id="lbx" src="./imgs/lbx.png" alt="">
#center #lbx { position: absolute; left: -63px; top: -63px; animation: lbxRotate 10s linear infinite; } /* css动画旋转 */ @keyframes lbxRotate { from { transform: rotate(0) } to { transform: rotate(360deg) } }
-
from:是开始,to是结束 360deg是360度开始旋转
-
lbxRotate:是容器的animation属性的第一个属性值。
-
animation:设置css动画,第一个属性值是动画名,第二个属性值是时间,第三个属性值是水平旋转,第四个属性值是无限循环旋转