一种简单粗暴的大屏自适应方案,原理及案例

现状

现在最流行的大屏自适应手法: scale缩放
为了解决2d/3d的点击交互问题,通常设计成了2个层容器。图表层和2d/3d层。图表层负责缩放,2d/3d层保持100%显示,避免缩放引起的交互事件event问题。

下图是一个1920*1080的大屏示意图

使用常规的缩放方法,让大屏在窗口内最大化显示。大屏在不同的窗口中出现了空白区域,并没有充满整个屏幕。

新的方法

在缩放的基础上,对指定的要素进行贴边处理。还是这张设计图,我们希望上下吸附到窗口最上面和最下面。左右图表吸附到窗口的最左边和最右边。

这里面需要简单的计算,其中a是图表层 scale属性

js 复制代码
var halftop = (window.innerHeight- (1080*a.scaleY))/2/a.scaleY;
var halfleft = (window.innerWidth- (1920*a.scaleX))/2/a.scaleX; 

对指定id的容器,在resize事件中设置上下左右浮动。如下图

实战项目效果

注,下面图片中的数据指标、城市名、姓名、图像均为虚拟数据。

在实际应用中,一般1920*1080设计稿已宽屏为主,如果是竖屏大屏(下图5),需要设计竖屏UI。

你也可以下载该项目demo, 对窗口进行缩放查看效果 pan.baidu.com/s/1hE_C9x9i...

相关推荐
前端小巷子1 分钟前
跨域问题解决方案:CORS(跨域资源共享)
前端·网络协议·面试
大大。2 分钟前
van-tabbar-item选中active数据变了,图标没变
java·服务器·前端
Mintopia4 分钟前
Three.js 3D 世界中的噪声运动:当数学与像素共舞
前端·javascript·three.js
nc_kai5 分钟前
Flutter 之 每日翻译 PreferredSizeWidget
java·前端·flutter
来碗疙瘩汤8 分钟前
使用 Three.js 与 CSS3DRenderer 在 Vue3 中加载网页为 3D 模型
前端·javascript
满分观察网友z9 分钟前
富文本解析终极指南:从Quill到小程序,我如何用正则摆平所有坑?
前端
打野赵怀真10 分钟前
在TypeScript中装饰器有哪些应用场景?
前端·javascript
destinying11 分钟前
vite学习笔记
前端·javascript
LRH12 分钟前
JS基础 - 手写数组扁平化函数
前端·javascript
共享ui设计和前端开发人才15 分钟前
UI前端与数字孪生结合探索:智慧建筑的能耗管理与优化
前端·ui·状态模式