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

大屏自适应缩放解决方案

做大屏做难搞的就是自适应问题, 此方案是在视频播放器上得到的灵感, 计算宽高的缩放比, 根据宽高最小的缩放比进行缩放, 用到的是css里的transform: scale, 希望此案例能有所帮助, 如果有更好的解决方案也希望大家一起分享

css部分

*{padding: 0; margin: 0}.largeScreen{width: 100vw; height: 100vh; background: url('./bg.jpg') no-repeat;background-size: cover;
}
.box{width: 1920px; height: 1080px; position: fixed;background: pink; opacity: 0.5; transform-origin: left top;left: 50%;  top: 50%;
}
.innerMinBox{font-size: 22px; color: #2AC5A9; font-weight: bold;}

html部分

<div class="largeScreen"><div class="box" id="box"><div class="innerMinBox">文字内容</div></div>
</div>

js部分

	// 控制大屏放大缩小let box = document.getElementById('box');box.style.transform = `scale(${getScale()}) translate(-50%, -50%)`;/*** 计算缩放比* w: 设计稿的原始宽度; w要与css部分设置的box的宽度一致* h: 设计稿的原始高度; h要与css部分设置的box的高度一致* */function getScale(w=1902, h=1080){// 计算宽高的缩放比let ww = window.innerWidth / w;let wh = window.innerHeight / h;return ww < wh ? ww : wh}/**只要屏幕发生变化就要重新计算并设置缩放比 */window.onresize = ()=>{box.style.transform = `scale(${getScale()}) translate(-50%, -50%)`;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 跨平台集成:在 AI、微服务和 Azure 云之间实现无缝工作流
  • 如何在YoloV8中添加注意力机制(两种方式)
  • PyTest装饰器
  • 腾讯云、阿里云、华为云优惠券领取、查看、使用教程分享
  • C++ 中的 override 和 overload的区别
  • 旋转电连接器航空插头插座的特点
  • 《深度学习》OpenCV轮廓检测 模版匹配 解析及实现
  • QT信号槽原理是什么,如何去使用它?
  • [前端][JS]html中js不同位置的区别
  • 87-java 可轮询锁和定时锁
  • Vue3图片上传报错:Required part ‘file‘ is not present.
  • HarmonyOS NEXT应用开发性能实践总结
  • 有没有视频加字幕免费软件?值得收藏的10款字幕编辑软件推荐!
  • Java教程:SE进阶【十万字详解】(上)
  • 【Java】方法2_Java的参数传递机制
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Bytom交易说明(账户管理模式)
  • Consul Config 使用Git做版本控制的实现
  • echarts的各种常用效果展示
  • IDEA 插件开发入门教程
  • isset在php5.6-和php7.0+的一些差异
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript DOM 10 - 滚动
  • nodejs:开发并发布一个nodejs包
  • Python 基础起步 (十) 什么叫函数?
  • SQLServer之创建显式事务
  • 大整数乘法-表格法
  • 聚簇索引和非聚簇索引
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 学习Vue.js的五个小例子
  • 用简单代码看卷积组块发展
  • 在Unity中实现一个简单的消息管理器
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (3)STL算法之搜索
  • (C++哈希表01)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (安卓)跳转应用市场APP详情页的方式
  • (搬运以学习)flask 上下文的实现
  • (汇总)os模块以及shutil模块对文件的操作
  • (六)vue-router+UI组件库
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (转)http协议
  • ****Linux下Mysql的安装和配置
  • ***检测工具之RKHunter AIDE
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET 5种线程安全集合
  • .net core 的缓存方案
  • .net 简单实现MD5
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET处理HTTP请求