ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大屏适配方法

2022-02-07 18:01:44  阅读:219  来源: 互联网

标签:适配 var window rem 大屏 屏幕 方法


日常吐槽:

作为一名经常联调接口,开发PC端表单页面的前端开发来说,偶尔来一个需求需要开发大屏页面,而且需要各种适配,第一反应是:我改怎么办?我可以做好吗?我以前没做过呀?怎么办呢?

经过一连串儿的自我怀疑后,还是得老老实实寻找解决办法,好在网上各路大神都多多少少分享过类似的经验,在经过一番实战及刻苦钻研后,自我总结如下,如果你目前也面临这样的困境的话,可以花几分钟时间读读下面的文字,希望对你有所帮助

言归正传:

面对的问题:对于前端开发者来说,大屏开发最主要的有以下几个方面需要考虑

  1. 如何适配不同分辨率的屏幕,保持每个div元素在不同分辨率的屏幕下依然显示正常的比例,不会拉伸变形
  2. 字体 通常情况下,我们会把字体写成固定的px像素值,在普通屏幕下如果不是要求特别严格,PC端通常不会考虑适配;但是在大屏模式下,固定的像素值看起来就如同在山顶看山脚下的汽车一般,极为渺小

解决办法:

① css3 transform:scale()方法

此方法需固定屏幕宽高,适合整个项目都是大屏页面的工程,但如果是一个项目里嵌入几个大屏页面的话,不推荐此方法;该方法可以解决屏幕适配、字体适配的问题

缩放以后四周会留有空白,如下代码可以解决空白问题

function resize() {
          var ratioX = $(window).width() / 1920; //此处的宽高根据自己屏幕的比例修改即可
          var ratioY = $(window).height() / 1080;
          $("body").css({
              transform: "scale(" + ratioX + "," + ratioY + ")",
              transformOrigin: "left top",
              backgroundSize: "100% 100%"
          });
          $("html").css({'overflow':'hidden'})
}
$(window, document).resize(function () {
  resize();
});
resize();

② 百分比+rem 方法

百分比布局不用多说,宽高都用百分比来布局就行,保证自适应;本人也曾尝试过flex布局,但是总是会有各种奇奇怪怪的问题,会把宽度撑开,导致没有自适应,所以保准点还是采用百分比布局吧;

rem借鉴移动端的字体适配方法,大家都知道移动端屏幕本来就很小,所以必须保证字体在不同分辨率下显示最佳大小

setRem(){
    var whdef = 100 / 1366; // 表示1366的设计图,使用100PX的默认值
    var bodyWidth = document.body.clientWidth; // 当前窗口的宽度
    var rem = bodyWidth * whdef; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应FONT-SIZE值
    // document.getElementsByTagName("html")[0].style.fontSize = rem + "px";
    document.documentElement.style.fontSize = rem + "px";
}
 mounted() {
     this.setRem()
    window.addEventListener("load", this.setRem());
    window.addEventListener("resize", this.setRem(),false);
}

以就是大屏适配的两种较为简单的方法,当然还有媒体查询可以来适配,如果以上两种方法都不好使的情况下,媒体查询也不失为一个最简单有效的方法。

写在最后:

好了,希望这篇小小的总结可以给屏幕前的朋友提供一点微小的帮助,如有什么不清楚的地方可以留言,大家可以互相讨论,共同进步!

标签:适配,var,window,rem,大屏,屏幕,方法
来源: https://blog.csdn.net/qq_41238459/article/details/122812296

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有