页面适配缩放计算

page-scale.js

const pageScale = {
  // 页面缩放比例
  cachePageScale: 0,

  calculateScale() {
    if (this.cachePageScale) return this.cachePageScale;

    const windowWidth = window.screen.width;
    const windowHeight = window.screen.height;
    const baseRate = Number((375 / 812).toFixed(2));
    const curRate = Number((windowWidth / windowHeight).toFixed(2));
    if (curRate <= baseRate) {
      this.cachePageScale = 1;
    }
    if (curRate > baseRate) {
      const scaleW = Number((windowWidth / 375).toFixed(2));
      const scaleH = Number((windowHeight / 812).toFixed(2));
      const scaleMin = Math.min(scaleW, scaleH);
      const scaleMax = Math.max(scaleW, scaleH);
      this.cachePageScale = Number((scaleMin / scaleMax).toFixed(2))
    }
    return this.cachePageScale;
  }

  centerScale() {
    const scale = this.calculateScale();
    return {
      transformOrigin: 'center center',
      transform: `scale(${scale})`
    }
  }
}

export default pageScale;

demo

import pageScale from 'page-scale';
const scale = pageScale.calculateScale();