vue通过mixins混入实现所有大屏适配,摆脱因适配引起的头痛(模版就是设计稿->全程就是px)

news2024/11/25 22:42:38

vue通过mixins混入实现所有大屏适配

市场上屏幕种类繁多,自己开发MAC的版本显示器1440×900与另一个显示屏的全屏状态下是1920×1080,如何让自己的web项目,在不同的宽高比下依旧体现出高优越的观感体验。。。。

  • rem响应式单位:好用但是设计稿不会立马出rem,需要蓝湖或者自己计算,同时的确定根单位font-zise的在不同的屏幕尺寸下的基准值。
  • %单位,不精细,对于字体,线粗等,精修类样式体感过累
  • 那我只想根据设计稿走,假如设计稿就是(1920×1080),我只需要全程px精修样式,不需要考虑太多的适配问题呢??????
  • 有没有一种我只需要考虑一种屏幕比的情况下,项目去自动适配其他的屏幕呢。

有了,你的项目将整体居中,看情况或者去修改我的mixin模式。

不走样不失真

// 屏幕适配 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)
  },
  beforeDestroy () {
    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)
    }
  },
}

原理在代码中已有体现,使用方法如下:插入混入js。混入js可作为你的utils目录下的强力干将,配置于整个项目。

<template>
  <div id="databack" ref="appRef">
      <dv-loading>Loading...</dv-loading>
  </div>
</template>
mport drawMixin from "../utils/drawMixin";
export default {
  name:'dataBack',
  mixins: [ drawMixin ],
  components:{},
  data:()=>({}),
  mounted() {}
}
</script>
<style lang="scss" scoped>
  #databack{
    color: #d3d6dd;
    width: 1920px;
    height: 1080px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transform-origin: left top;
    overflow: hidden;
    background: url('../assets/pageBg.png');
  }
</style>

无论多大的屏幕全屏将体现如下,自动放大铺满屏幕:
在这里插入图片描述
浏览器的导航条与收藏条下展示
在这里插入图片描述
小屏上存在浏览器的导航条与收藏条的展示效果
在这里插入图片描述
小屏上不存在浏览器的导航条与收藏条的展示效果(打开浏览器的全屏模式)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatLaw:中文法律大模型

论文题目&#xff1a;ChatLaw: Open-Source Legal Large Language Model with Integrated External Knowledge Bases   论文日期&#xff1a;2023/06/28   官网地址&#xff1a;https://www.chatlaw.cloud   论文地址&#xff1a;https://arxiv.org/abs/2306.16092   G…

【Ubuntu】Ubuntu制作Ubuntu Server系统盘

要制作 Ubuntu Server 系统盘&#xff0c;你可以按照以下步骤在 Ubuntu 系统上进行操作&#xff1a; 下载 Ubuntu Server ISO 镜像文件&#xff1a; 访问 Ubuntu 官方网站的下载页面&#xff1a;Get Ubuntu Server | Download | UbuntuGet Ubuntu Server one of three ways; by…

数据库操作

数据库操作作业 1.创建数据库&#xff0c;删除数据库&#xff0c;查询创建数据的语句&#xff0c;使用数据库&#xff0c;查询当前默认的数据库以及使用的编码方式校验规则 创建数据库 CREATE DATABASE 数据库名称 CHARACTER SET 字符集 COLLATE 校验规则; create database…

操作系统实战45讲|01程序的运行过程、02几行汇编几行C

配置环境遇到的问题 virtualBox实现windows和Ubuntu之间的复制粘贴 1.修改设置&#xff0c;设置共享粘贴板为双向 或者在运行的虚拟机的窗口中进行设置 2.安装virtualbox增强功能 (1)直接联网安装 设备----安装增强功能 3.补充 windows中终端和文档复制的快捷键为ctrlc&…

flashplayer timeout 15s

Error: Error #1502: 脚本的执行时间已经超过了 15 秒的默认超时设置。at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::getScrollableRect()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:4209]at mx.core::Container/cre…

自然语言处理:了解循环神经网络RNN及其变种长短期记忆网络(LSTM)、门控循环单元(GRU)、双向RNN

文章目录 一、RNN二、GRU三、LSTM四、GRU vs LSTM五、双向RNN 一、RNN 递归神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种具有时间序列依赖性的人工神经网络结构。其主要原理是在传统神经网络的基础上引入了循环连接&#xff0c;允许信息在…

基于51单片机温湿度-烟雾-一氧化碳-蓝牙-风扇的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示屏来显示显示测得的值&#xff1b;一氧化碳感应一氧化碳的数值&#xff1b;通过烟雾传感器获取前的烟雾值&#xff1b;通过DHT11温湿度传感器来获取当前的温湿度&#xff1b;当温度或烟雾高于阈值打开风扇&#xff…

折叠屏手机再添新功能?OPPOColorOS14发布,打通 App 和终端互联

近年来&#xff0c;多终端互联互通已经成为数码产品的发展趋势&#xff0c;各家手机品牌也在不断提升相关功能。 根据数码博主 数码闲聊站的爆料&#xff0c;OPPO即将发布ColorOS 14&#xff0c;并特别提供了针对折叠屏手机的Fold系统。该系统在横屏模式下对自带应用进行了更好…

工程项目综合管理系统拥有哪些功能,你真的了解吗?

在建筑工程行业中&#xff0c;项目的管理是一项复杂而又关键的任务。为了提高项目管理的效率和准确性&#xff0c;许多企业开始采用信息化系统进行精细化管理。因此&#xff0c;建立一套完善的工程项目管理系统&#xff0c;成为了建筑工程管理的必要条件之一。这种系统结合了工…

pytest+yaml实现接口自动化框架

目录 前言 项目结构设计 yaml格式的用例 运行用例 总结&#xff1a; 前言 httprunner 用 yaml 文件实现接口自动化框架很好用&#xff0c;最近在看 pytest 框架&#xff0c;于是参考 httprunner的用例格式&#xff0c;写了一个差不多的 pytest 版的简易框架 项目结构设计…

【PowerDesigner】数据库建模工具记录

导入格式 最终效果 执行语句 工具(tool) -> 其他记录 执行脚本 快捷键&#xff1a;CtrlShiftX 工具(tool) -》Execute Commands -》 Edit/Run Script 导入脚本 快捷键&#xff1a;Ctrl R 数据库-》Update Model from Database 显示首选项 ODBC 数据源管理程序 Powerd…

Istio 流量管理 serviceEntry 出口流量管理

无论是vs还是dr这些都是入口的流量。对于pod来说也会有出去的流量的。 除了对进来的流量做有效的控制之外&#xff0c;其实也可以控制出去的流量。istio-egress是出口网关&#xff0c;pod出去的时候要经过egress-gateway到达外界的某个终端。 hosts: - www.baidu.com 这个是p…

腾讯云对象存储联合DataBend云数仓打通数据湖和数据仓库

随着数字化进程不断深入&#xff0c;数据呈大规模、多样性的爆发式增长。为满足更多样、更复杂的业务数据处理分析的诉求&#xff0c;湖仓一体应运而生。在Gartner发布的《Hype Cycle for Data Management 2021》中&#xff0c;湖仓一体&#xff08;Lake house&#xff09;首次…

Linux之CentOS_7.9卸载MySQL_5.7全过程实操手册

前言&#xff1a;接以上&#xff0c;前面记录了Windows和Linux环境的MySQL部署&#xff0c;那我们既然都部署完成验证测试那就来个卸载记录吧&#xff0c;便于闭环收尾。 环境&#xff1a; 1、CentOS-7.9-x86_64-DVD-2009.iso 2、MySQL-5.7.42-linux-glibc2.12-x86_641、关闭…

软件测试工程师生存手册

以前做传统行业时&#xff0c;从来没担忧过自己会因为什么事被干掉&#xff0c;因为觉得自己工资低。培训转行跳到IT互联网公司后&#xff0c;这种担忧从未消失过。 互联网公司发展迭代非常迅速。今天通过切身的感受来聊一聊&#xff0c;作为一名测试工程师&#xff0c;如何才能…

OutOfMemoryError: unable to create new native thread.

在java应用中&#xff0c;有时候会出现这样的错误&#xff1a;OutOfMemoryError: unable to create new native thread.现象1. 这种怪事是因为JVM已经被系统分配了大量的内存(比如1.5G)&#xff0c;并且它至少要占用可用内存的一半&#xff1b;2. 在线程个数很多的情况下&#…

电脑便签怎么嵌入桌面使其不可移动呢?

很多人在使用电脑便签的时候&#xff0c;为了更方便地查看和记录事情&#xff0c;经常会有一种需求&#xff1a;将电脑便签固定在桌面底层&#xff0c;也就是嵌入桌面&#xff0c;并且让他不可移动。要想实现这种效果的话&#xff0c;应该如何设置才可以呢&#xff1f;以Window…

kettle/spoon工具的表输入/输出组件更新数据很慢

看了很多关于表输出速度慢的博客感觉有两条对我有作用。 我的问题是表输出&#xff08;insert&#xff09;速度很快&#xff0c;但是插入/更新组件的速度特别忙。 表输出速度慢 mysql表输出的时候出现减速的原因可能是因为网络链接的属性设置 在数据库连接里添加参数&#xf…

ModaHub魔搭社区:如何安装、部署和使用 Milvus Lite?

目录 如何安装、部署和使用 Milvus Lite? 总结 如何安装、部署和使用 Milvus Lite? 准备工作 在正式安装 Milvus Lite 以前&#xff0c;需要做足以下准备&#xff1a; 安装 Python 3.7 或更高版本。 使用下述任何一个经过验证的操作系统&#xff1a;Ubuntu > 20.04 …

【MySQL入门到精通-黑马程序员】MySQL基础篇-概述及MySQL环境配置

文章目录 前言一、MySQL概述1.1 数据库相关概念1.2 MySQL数据库 二、数据模型三、总结 前言 本专栏文章为观看黑马程序员《MySQL入门到精通》所做笔记&#xff0c;课程地址在这。如有侵权&#xff0c;立即删除。 一、MySQL概述 1.1 数据库相关概念 数据库&#xff08;DataBas…