pc端大屏自適應


  • react版本
按1920/1080的比例進行縮放比例的換算,本地屏幕的寬高取innerWidth和innerHeight
在需要進行大屏適配的頁面添加如下代碼,大屏內部的計算單位直接使用px就可以了
//1、計算scale值,並存儲在state中
getScale = () => {
    const width = 1920,
          height = 1080;
    let ww = window.innerWidth / width;
    let wh = window.innerHeight / height;
    return ww < wh ? ww : wh;
  };
  constructor(props) {
    super(props);
    // this.state = { theme };
    this.state = {
      timer: 0,
      scale: this.getScale(),
    };
  }
//2、監聽resize變化,賦給不同的scale比例值
 componentDidMount() {
    //let begin_time = `${moment(new Date())
      .subtract(10, 'days')
      .format('YYYY-MM-DD HH')}:00:00`;
    //let end_time = `${moment(new Date()).format('YYYY-MM-DD HH')}:00:00`;
    //this.loadTotalPlan();
    //this.loadAggsData(begin_time, end_time);
    //this.intervalLoad(begin_time, end_time);
    window.addEventListener('resize', this.handleResize);
  }
//debounce為防抖函數
handleResize = debounce(() => {
    let scale = this.getScale();
    // console.log(scale, 'scale-----');
    this.setState({
      scale: scale,
    });
  }, 300);
//3、在render的使用,加在標簽上
 <div
        className={styles.screenBox}
        style={{
          transform: `scale(${scale})`,
          transformOrigin: 'left top',
          width: '1920px',
          height: '1080px',
          overflow: 'hidden',
        }}
      >
</div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM