当前位置: 首页 > java >正文

页面弹窗适配问题

如果你正在边刷手机边蹲马桶,恭喜!这篇博客就是为你量身定制的。现在请擦擦手(真的,擦擦吧),我们要开始了。

故事的开始是因为昨天接到个新需求需要给页面加个弹窗,用elementPlus组件,弹窗是加上了,但是因为页面之前的适配方案导致弹窗在页面的最中间,而且缩放有问题,怎么办呢?上网找了找给弹窗加了个append-to-body属性,但是适配依旧有问题,接下来上代码

一、页面弹窗

注意:ref必须要加方便找到节点,align-center弹窗居中显示, transform控制弹窗缩放

<el-dialogref="myElement"v-model="dialogOpen.show"align-center:title="dialogOpen.name"width="900px"append-to-body:style="{transform: `scale(${scaleVal})`,}"
><div
class="dialog-content"
><div><img src="@/assets/images/details_people.png" alt=""></div><div><img :src="qrCodeImage" alt=""><div style="font-size: 1rem;">请前往小程序使用该服务</div></div></div></el-dialog>

二、js代码(控制缩放)

刚开始用的window.onresize监听缩放,后面发现会影响之前的页面缩放(页面用的就是这个缩放方案),改进了一版,用addEventListener去监听,效果差不多。

const scaleVal = ref(1)
const myElement = ref(null);
const scaleValSet = () => {scaleVal.value = window.innerWidth / 1920;
};watchEffect(() => {window.addEventListener('resize', () => {scaleValSet()})
})
// window.onresize = function () {
//   scaleValSet();
// };

三、补充(页面缩放方案除去弹窗)

页面缩放方案是在节点 "app-box" 整体用transform去缩放

const baseWidth = 1920; //设计稿宽度%10 比如 1920// 设置rem 函数
export function setRem() {const scale = window.innerWidth / baseWidth;const mainContent = document.getElementById("app-box");if (mainContent) {mainContent.style.transform = `scale(${scale})`;mainContent.style.width = baseWidth + "px";// mainContent.style.height = window.innerHeight / scale + "px";}
}
window.onresize = function () {setRem();
};

当然需要在main.js去引入

import { setRem } from './rem.js' // rem适配setTimeout(() => {setRem();
}, 0);

最后还需要在main.css加上一行代码

#app-box {transform-origin: left top;
}
http://www.xdnf.cn/news/13961.html

相关文章:

  • Vue权限控制小妙招:动态渲染列表的优雅实现
  • 日常运维问题汇总_43
  • 【Zephyr 系列 23】构建 Web OTA 平台与远程运维工具链:从固件上传到设备在线升级全流程
  • golang使用tail追踪文件变更
  • 解决 Java 与 JavaScript 之间特殊字符传递问题的终极方案
  • ReentrantLock和RLock
  • 新增一个战斗角色
  • n8n实战:自动化生成AI日报并发布
  • USB串口通信、握手协议、深度学习等技术要点
  • window显示驱动开发—为 DirectX VA 2.0 扩展模式提供功能(一)
  • leetcode 2616. 最小化数对的最大差值 中等
  • 【备忘】PHP web项目一般部署办法
  • 《数据安全法》学习(一)
  • 某靶场CTF题目:利用Apache APISIX默认Token漏洞(CVE-2020-13945)获取Flag
  • 2025虚幻角色模型相关笔记
  • Linux用户管理进阶:权限体系深度剖析与实战优化方案
  • 题目类型——左右逢源
  • Python-Flask实现登录
  • PRUD币将于6月16日正式上线欧易Web3交易所,市场热度持续飙升
  • 【Qt/数据结构 QMap是什么类型的数据结构?】
  • 《第一章-初入江湖》 C++修炼生涯笔记(基础篇)C++初识
  • Rust高级抽象
  • Mysql 忘记密码后如何修改
  • 稀土化合物在生态环境的应用
  • 制造业网络安全的挑战与应对策略
  • 德瑞新能源“天佑”车队再征雪域 中尼绿色丝路开启新程
  • 如何在 Android 和 iPhone 上发送群组文本
  • 【常见排序算法】java 代码实现
  • Power Query动态追加查询(对文件夹下文件汇总)
  • WebSocket 前端断连原因与检测方法