美文网首页
vue2中通过来适配大屏分辨率,做到自适应

vue2中通过来适配大屏分辨率,做到自适应

作者: 甘道夫老矣 | 来源:发表于2023-09-21 14:58 被阅读0次

当前方法仅限于没有地图操作,一些定位的情况,,并且在没有适配中间的情况会有边距

新建drawMixin.js

// 屏幕适配 mixin 函数

// * 默认缩放值
const scale = {
  width: '1',
  height: '1'
}

// * 设计稿尺寸(px)
const baseWidth = 1920
const baseHeight = 1080

// * 需保持的比例(默认1.77778)
const baseProportion = parseFloat((baseWidth / baseHeight).toFixed(5))

export default {
  data() {
    return {
      // * 定时函数
      drawTiming: null
    }
  },
  mounted() {
    this.calcRate()
    window.addEventListener('resize', this.resize)
  },
  unMounted() {
    window.removeEventListener('resize', this.resize)
  },
  methods: {
    calcRate() {
      const appRef = this.$refs['appRef']
      // console.log(appRef)
      if (!appRef) return
      // 当前宽高比
      const currentRate = parseFloat((window.innerWidth / window.innerHeight).toFixed(5))
      if (appRef) {
        if (currentRate > baseProportion) {
          // 表示更宽
          scale.width = ((window.innerHeight * baseProportion) / baseWidth).toFixed(5)
          scale.height = (window.innerHeight / baseHeight).toFixed(5)
          appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)`
        } else {
          // 表示更高
          scale.height = (window.innerWidth / baseProportion / baseHeight).toFixed(5)
          scale.width = (window.innerWidth / baseWidth).toFixed(5)
          appRef.style.transform = `scale(${scale.width}, ${scale.height}) translate(-50%, -50%)`
        }
      }
    },
    resize() {
      clearTimeout(this.drawTiming)
      this.drawTiming = setTimeout(() => {
        this.calcRate()
      }, 200)
    }
  }
}

使用

<div class="main-box" ref="appRef">
</div>
import drawMixin from "@/components/drawMixin";
export default {
  mixins: [drawMixin],
}
<style>
.main-box {
    z-index: 3;
    position: absolute;
    width: 1920px;
    height: 1080px;
    top: 50%;
    left:50%;
    transform-origin: left top;

}
</style>

相关文章

  • 技术文章汇总

    横竖屏适配 字体大小适配 Cell 高度自适应

  • Andorid屏幕分辨率和适配规则

    在《iPhone屏幕分辨率和适配规则(基础篇)》,《iPhone屏幕分辨率和适配规则(规则篇)》和《iPhone屏...

  • 关于大屏利用rem自适应

    功课传送门:大屏上的全屏页面的自适应适配方案 rem 方案 rem (font size of the root ...

  • 大屏总结

    转为rem 大屏最重要的就是分辨率适配问题,对此我们可以将每个页面中的元素设置为rem来完成页面内元素长宽设置,但...

  • 大屏可视化问题

    大屏显示的最终分辨率受限于: 大屏本身支持的最大分辨率 用来投屏的电脑支持的最大分辨率 连接电脑和大屏硬件中间线路...

  • 移动h5自适应布局

    移动h5自适应布局 问题一,分辨率Resolution适配:不同屏幕宽度,html元素宽高比和字体大小,元素之间的...

  • iOS 字体规范和多屏适配

    一.字体多屏适配 分辨率与像素(分辨率单位是程序所说的单位——点即pt,像素为真实Pixel) 1.iphone4...

  • iOS开发屏幕适配

    Hello,简书! ## iOS开发屏幕适配 ## 屏幕适配原则大屏手机显示更多的内容 - 并不是大屏手机就根据屏...

  • iPhone屏幕分辨率和视频规则(实现篇)

    在文章《iPhone屏幕分辨率和适配规则(基础篇)》和《iPhone屏幕分辨率和适配规则(规则篇)》中,讲了iPh...

  • 数据可视化大屏 前端屏幕多分辨率适配方案(vue,echarts

    数据可视化大屏 前端屏幕多分辨率适配方案(vue,echarts) 写在前面:第一次写博客, csdn账号注册很久...

网友评论

      本文标题:vue2中通过来适配大屏分辨率,做到自适应

      本文链接:https://www.haomeiwen.com/subject/ffthudtx.html