首页 > 其他分享 >屏幕自适应方案

屏幕自适应方案

时间:2022-12-21 14:12:13浏览次数:45  
标签:方案 scale const 缩放 screen 适应 屏幕 document

一、屏幕自适应方案

  1. @media screen、%、vw vh、栅格、rem、scale缩放;

二、业务场景

  1. 电脑、平板、手机三种设备自适应:

    建议:

    1. 做三个站点,在前端或者nginx重定向到对应的站点;

  2. 大屏自适应:

    建议:

    1. rem(%、vw vh、栅格);

    2. scale缩放;

三、scale缩放实现

/**
    html部分
 */
 <template>
     <div className="screen-wrapper">
        <div className="screen" id="screen">

        </div>
     </div>
 </template>

 /*
    CSS部分  --除了设计稿的宽高是根据您自己的设计稿决定以外,其他复制粘贴就完事
  */  
<style>
.screen-root {
    height: 100%;
    width: 100%;
    .screen {
        display: inline-block;
        width: 1920px;  //设计稿的宽度
        height: 960px;  //设计稿的高度
        transform-origin: 0 0;
        position: absolute;
        left: 50%;
     }
}
<style>
       
 /**
    js部分
 */
    mounted(){
        //初始化自适应  ----在刚显示的时候就开始适配一次
        handleScreenAuto();
        //绑定自适应函数   ---防止浏览器栏变化后不再适配
        window.onresize = () => handleScreenAuto();
    },
    deleted(){
        window.onresize = null;
    },
    methods: {
        //数据大屏自适应函数
        const handleScreenAuto = (): void => {
            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%)`;
        }
    }

 

 

 

 

 

 

    

标签:方案,scale,const,缩放,screen,适应,屏幕,document
From: https://www.cnblogs.com/zhangruiqi/p/16996127.html

相关文章

  • 分布式锁解决方案
    需求互斥性:和我们本地锁一样互斥性是最基本,但是分布式锁需要保证在不同节点的不同线程的互斥。可重入性:同一个节点上的同一个线程如果获取了锁之后那么也可以再次获取这......
  • Android Studio Error:Connection timed out: connect.解决方案
      小编把​​Android​​ Studio升级到了2.0版本,但是遇到了这样的错误:Error:Connectiontimedout:connect.IfyouarebehindanHTTPproxy,pleaseconfigureth......
  • 《分布式事务系列教程-第四章-XA分布式事务解决方案》
    《分布式事务系列教程-第四章-XA分布式事务解决方案》一、XA解决方案XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器(TM)和资源管理器(RM)。其中资源管理......
  • Linux负载均衡解决方案 -- LVS 理论概述
    Lvs理论概述​​一、什么是LVS?​​​​二、为什么需要LVS?​​​​三、LVS原理​​​​1、LVS体系结构​​​​2、LVS工作模式​​​​3、LVS调度算法​​​​四、L......
  • 使用OptionMenu在屏幕中自定义自己的菜单
    菜单是用户界面最常用的,使用最频繁的元素之一,在Android中的菜单被分为3种,分别是选项菜单(OptionMenu),上下文菜单(ContextMenu)和子菜单(SubMenu),在本实例中使用了Optio......
  • 在屏幕中使用评分组件
    在Android系统中,评分组件RatingBar的功能是为用户提供一个评分操作的模式,在日常应用中,经常见到评分系统使用RatingBar控件流程(1)在布局文件中定义控件以及属性,这里主要......
  • 数据存储全方案,详解持久化技术
    Android系统主要提供了三种方式用于简单的实现数据持久化功能,即文件存储,ShareedPreference存储以及数据库存储.当然,除了这三种方式之外,你还可以将数据保存在手机的SD卡......
  • [vue] 项目使用rem 单个组件 PC端自适应大屏
    rem.jsexportfunctionresetRem(){//基准大小baseSize=100;constbasePc=baseSize/1440;//表示1440的设计图,使用100PX的默认值constvW=window.inner......
  • [echart] 字体自适应的方法(使用rem)
    functionsetFontSize(res){constclientWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;if(!clientWidth)return;......
  • wordpress如何用m二级域名做手机站解决方案
    用m二级域名做为手机站长,是目前最流行的手机端解决方法,那如果在wordpress程序上实现,并且可以达到数据信息内容共享呢?今天大挖教大家一个高效解决方式,希望可以通过以上的wor......